13.1.2. cesCommCommit¶
SYNOPSYS¶
t_i32 cesCommCommit(
[in] t_i32 nNodeID,
[in] t_i32 nChannel,
[out] t_i32 nNumRetSendSize
)
DESCRIPTION¶
송신 버퍼의 내용을 시리얼 통신 칩의 전송 버퍼에 담아 전송 시키는 작업을 수행합니다.
PARAMETER¶
nNetID : Network 번호
nChannel : 채널 번호
nNumRetSendSize : 1 바이트 이상의 바이트열 데이터
EXAMPLE¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include "ceSDK.h"
#include "ceSDKDef.h"
long nSerialChNo = 0; // 시리얼 채널(Port) 번호
BYTE byData; // 바이트 데이터 정보
BYTE abyData[8]; // 바이트열 데이터 정보
int nCheckSum = 0;
// 0 번 시리얼 포트에 대해 수신 버퍼로부터 1 바이트 크기의 데이터 확인
if ( cesPeekByte ( nSerialChNo, &byData ) == ceERR_NONE )
{
if ( byData != 0x2 ) // STX 가 아니면 원하는 패킷이 아님.
{
return;
}
}
// 0 번 시리얼 포트에 대해 수신 버퍼로부터 8 바이트 크기의 데이터 읽기
if ( cesReadString ( nSerialChNo, 8, &abyData ) != ceERR_NONE )
{
OutputDebugString ( "cesPeekString has been ailed" );
}
// 전달해 줄 패킷 생성
abyData[0] = 0x2; // STX
abyData[1] = 'A';
abyData[2] = 'B';
abyData[3] = 'C';
abyData[4] = 'D';
abyData[5] = 'E';
for ( int I = 0; I <= 5; i++ )
{
nCheckSum += abyData[i];
}
abyData[6] = nCheckSum;
abyData[7] = 0x3; // ETX
if ( cesWriteString ( nSerialChNo, 8, abyData) == ceERR_NONE )
{
cesCommit ( nSerialChNo );
}
|