송신 부분은 되는 데 입력 부분에서 계속 않되네요. ㅠㅠ 일주일째 이러고 있어요..
ㅠㅠ 간단한 조언 부탁합니다.
Dim sRxd(21) As String
Dim sRdata As String
Dim i As Integer
Dim drecSts, drecPN, drecSPN, drecRGBr, drecRGBg, drecRGBb, drecACK As String
sRdata2 = ""
'한 문자씩 받아 변환 하는 과정
For i = 0 To 20
sRxd(i) = SerialPort1.ReadChar
sRdata = Chr(sRxd(i))
sRdata2 = sRdata2 + sRdata
Next
'진행프로세스의 Data만 저장한다.
drecSts = Mid(sRdata2, 1, 3)
drecPN = Mid(sRdata2, 4, 3)
drecSPN = Mid(sRdata2, 6, 3)
drecRGBr = Mid(sRdata2, 9, 3)
drecRGBg = Mid(sRdata2, 12, 3)
drecRGBb = Mid(sRdata2, 15, 3)
drecACK = Mid(sRdata2, 18, 3)
recStS.Text = (drecSts)
recPN.Text = (drecPN)
recSPN.Text = (drecSPN)
recRGBr.Text = (drecRGBr)
recRGBg.Text = (drecRGBg)
recRGBb.Text = (drecRGBb)
recACK.Text = (drecACK)
간단하게 해서 받고 짤라서 보여줄려고 만하는데 Data를 못받습니다.
readline, readExiting등 다양하게 해봤는데 해결점을 못찾고 있습니다..
에물레이터 돌리면서 확인중에 있어요.
readchar말고 다른것으로 해서 data받을수 있는 법좀 알려주세요..
SerialPort1.PortName = "Com1"
SerialPort1.BaudRate = 9600
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.DataBits = 8
SerialPort1.ReadBufferSize = 1024
SerialPort1.ReadTimeout = 500
SerialPort1.ReceivedBytesThreshold = 20
'혹시 포트가 열려 있으면 강제로 닫고 다시 포트를 연다.
If (SerialPort1.IsOpen = True) Then
SerialPort1.Close()
End If
SerialPort1.Open()
이부분은 셋팅 부분입니다. ㅠㅠ 하도 않되서 다 해봤습니다.어떻게 해야 할지 모르겠어요.,
readExiting로 하면 8글자씩 들어 오면서 배열맞추어서 했을때 않되고 그냥 받고 넘어 가더군요..ㅠㅠ
첫댓글 혹 전광판쪽 통신인가요?
많이 늦었네요^^; 전광판이 아니라 색상에 대한 Data를 시리얼로 받는 것입니다..ㅠㅠ readExiting이것을 잘 몰라서 많이 해맸습니다.. ㅠㅠ 이부분은 해결했는데.. 이제는 다른부분이 문제가 되네요.ㅠㅠ 그리고 시리얼로 240바이트의 자료를 받는데 mid로 패킷 구분시 데이터가 유실됩니다.ㅠㅠ 배열로..써서 돌렸는데..타이머에 시간을 1000으로 주니까 데이터 유실이 적네요..ㅠㅠ이런부분에 대해서는 해결 방법이 있나요? 다시 소스 올리겠습니다.
아! 그렇군요. 전광판 프로그램에 관해 개인적으로 관심이 있어서요. 어쨋든 해결했으면 좋겠네요
데이터를 블럭으로받아서 사용하세요.
네