여기서 우연히 만만치 않게 보일 것입니다.이 말은 저를 바보로 만들 것이라고 생각하지만, 저는 고대 현금 레지스터 프로그램을 .net으로 변환하려고합니다. 다른 모든 것을 정복했지만 금전 등록기를 열 수는 없습니다. 그것의 COM1에 연결되어, 당신은 "트리거"텍스트를 COM1 아래로 보내어 레지스터가 열리게해야합니다.MS- 현금 서랍, 잘못된 코드 열기? 나쁜 코드?
다음은 .net 코드입니다.
MsgBox("Opening Drawer")
Dim port As System.IO.Ports.SerialPort
port = New System.IO.Ports.SerialPort("Com1")
port.PortName = "COM1"
port.BaudRate = 9600
port.Parity = IO.Ports.Parity.None
port.DataBits = 8
port.StopBits = IO.Ports.StopBits.One
'port.Handshake = IO.Ports.Handshake.RequestToSend
port.RtsEnable = True
'port.DtrEnable = True
port.Open()
If port.IsOpen Then
'MsgBox("Attempt 1")
port.Write("@@@@@@@@@@@@@@@@@@@@")
MsgBox("Signal Sent: " & Chr(65))
Else
MsgBox("Port is not open")
End If
port.Close()
MsgBox("Pop, durn it!")
나는 msgboxes 그냥 팝업되지 않습니다,
저런 일을 "팝 서랍을 완료" "신호가 보낸"얻는다. MS-Cash Drawer (EP125KC)입니다. 확실히 COM1에 연결되어 있습니다. 확실히 전원이 있습니다. Chr (65)는 서랍을 불러오는 데 사용되는 이전 코드이며 작동합니다.
Open drawerComPort For Output Access Write As #1
Print #1, Chr$(65); "A";
Close #1
참고 : 위의 코드는 성공적으로 적용되었습니다. 근본적인 문제는 숭상 된 전원 코드로 인한 것입니다 (부정적인면은 잘못된 것입니다).
모든 도움 주셔서 감사합니다.
@ Markus : 포트가 MsgBox ("Done pop drawer") 앞에 주석 처리 된 기능의 끝에서 닫히지 않은 것을 알 수 있습니다. 코드가 전송 된 후 COM1 포트를 닫을 때까지 현금 서랍이 나오지 않을 것입니다 ... 포트를 '플러시'하는 수단으로 포트를 닫는 것을 고려하십시오 ... – t0mm13b
그래, 코드 .... 주석 처리가되지 않았습니다 ... 문제가 아닙니다. (FYI : 문제의 코드를 편집했습니다.) – Markus
아침에 다시 올거야 ... 지금은 텍스트 상자에 임의의 내용을 입력하고 COM1을 통해 보내고 있습니다 ... 달콤한 "땡"하지 마십시오. – Markus