Put 채널, 데이터, Length
채널 : 사용채널 (1,2,3중 하나) |
데이터 : 송신할 데이터 |
Length : 송신할 바이트수 |
RS232포트에 데이터를 송신하는 명령입니다. 송신 데이터에는 문자열 변수, 상수를제외한 나머지 변수 및 상수를 사용할 수 있습니다.
송신할 바이트 수만큼 데이터를 송신합니다. 문자열 데이터를 송신하려면 PUTSTR명령을 사용합니다.
Opencom1,19200,0,50,10 Dim A As Byte A = &HA0 Put 1,A,1 '&HA0이 전송됩니다.
실제로는 송신데이터를 송신용 버퍼에 저장합니다. 맨 앞에 있는 데이터부터 해당 채널로 송신됩니다.
PUT명령은 순식간에 실행이 끝나고, 바로 다음 행을 실행하게 되지만, RS232송신은 CUBLOC BASIC인터프리터에 의해서송신버퍼가 모두 비워질 때까지 계속해서 수행됩니다.
만약 PUT명령을 실행했을 때, 송신용 버퍼가 꽉 차있거나, 새로운 데이터가 들어갈만한 공간이 확보되지 않았을 경우, PUT명령은 버퍼가 비워질 때까지 기다리지 않습니다.
즉, 송신할 데이터를 송신버퍼에 넣지 못하고 수행을 종료하게되는 것입니다.
이런 경우를 미리 막기 위해서 송신버퍼의 여유공간을 사전에 확인한 후 PUT명령을 사용하는 것이 좋습니다.
If Bfree(1,1) > 2 Then '송신 버퍼가 2바이트 이상 비워져 있다면 Put 1,A,2 End If
RX와 TX단자를 서로 쇼트시킨뒤 아래 프로그램을 실행시키면, Debug터미널에 A부터 Z까지가 표시됩니다.
Const Device = CB280 Dim A As Byte Dim B As Byte Opencom 1,19200,3,50,50 Wait 500 For A=&h41 To &h5a Put 1,A,1 '채널1으로 1바이트를 송신 Wait 10 '버퍼로 들어오는시간을 기다려줍니다. B = Get(1,1) '채널1로부터 1바이트를 수신. Debug B Wait 100 Next