오토닉스 설명서는 VB로 나와 있습니다.
이거를 델파이로 고치면서 시리얼 데이터를 무선기기인 블루투스로 받아서 처리할려합니다.
그런데 잘 안되는 부분을 질문합니다.
vb 소스 입니다.
<!--CodeS-->
Private Sub Send_Click() '전송(Send) 버튼을 눌렀을 때
Dim Msg As String
Dim Send(0 To 32) As Byte '출력 문자열 중 CRC의 값 범위 때문에 Byte배열로 선언
Dim CRC As Byte
Dim i As Integer
SendMsg.Text = "01RX0P0+0000000" '화면의 SendMsg컴포넌트 초기화
ReceiveMsg = "" '화면의 ReceiveMsg 컴포넌트 초기화
StatusMsg = "" '화면의 StatusMsg 컴포넌트 초기화
If MSComm.PortOpen = True Then '포트가 열려 있다면
Msg = Mid(SendMsg, 1, 15) + Chr(&H3) '입력 문자열 중 15개를 잘라내어 ETC(&H3)신호 추가
CRC = CRC8table_packet(Msg, 16) 'CRC계산
Send(0) = &H2 '출력 문자열에 STX(&H2) 추가
For i = 1 To 16 '출력 문자열에 입력한 문자열 및 ETX(&H3) 추가
Send(i) = Asc(Mid(Msg, i, 1))
Next i
Send(17) = CRC '출력 문자열에 CRC 추가
MSComm.RTSEnable = True '보낼 준비 신호 출력, RTS신호 켬
MSComm.Output = Send '통신라인에 데이터 보냄
For i = 0 To 17 '보낸 문자열 화면 출력
StatusMsg = StatusMsg & Right$("00" & Hex$(Send(i)), 2) & " "
Next i
Else
StatusMsg = "Invalid COM port" '포트가 열리지 않았다면 에러 메시지 출력
End If
End Sub
<!--CodeE-->
이거를 델파이에서 TCP/IP의 포트로 작업할려니
<!--CodeS-->
if TCPClient1.Connected = True then
begin
Memo_AA.Lines.Add('STX00RX0P0+0000000ETX,35');
MSG:= Chr($02) + Chr($30) + Chr($30) + Chr($52) + Chr($58) + Chr($30) + Chr($50)
+ Chr($30) + Chr($2B) + Chr($30) + Chr($30) + Chr($30) + Chr($30) + Chr($30)
+ Chr($30) + Chr($30) + chr($03) + chr($35);
frmClient.TCPClient1.Write(MSG);
<!--CodeE-->
명령을 주는 부분을 이렇게 하였습니다. 그런데 응답이 없어요.
문제 있다 생각되는 부분은 ==> 변수가 BYTE(배열)사용 했으며, 델파이는 문자열 인데 이부분이 틀려서 그럴까요?