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 바이트 이상의 바이트열 데이터

RETURN VALUE

  • 함수 수행 여부를 반환합니다.

Value

Meaning

음수

수행 실패

0 (ceERR_NONE)

수행 성공

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 );
}