I'm communicating with a Wince 6.0 embedded device and read/write some data by c/c++ code. Now I'm using below code snippets for read/write to com port.
void ConvertIntToByte(int iValue, BYTE* ucRawBuffer, int iOffset)
{
ucRawBuffer[iOffset] = ((iValue >> 24) & 0xFF);
ucRawBuffer[iOffset+1] = ((iValue >> 16) & 0xFF);
ucRawBuffer[iOffset+2] = ((iValue >> 8) & 0xFF);
ucRawBuffer[iOffset+3] = (iValue & 0xFF);
}
ReadWriteDataThread()
{
BYTE ucInitMsg[32] = {0};
ucInitMsg[0] = 0x0A;
ConvertIntToByte(iUTCTime, ucInitMsg, 1);
ucInitMsg[21] = 0x02;
ucInitMsg[22] = 0x3E;
ucInitMsg[31] = 0xCA;
m_objComm.WriteCommPort(ucInitMsg, 32); //Its a standard comm port write function which used WriteFile windows API
}
Now, my concern is am I writing Bytes to com port in correct manner? Am I doing correct in bit shifting? I found the code for int to byte conversion on web and I'm not very much strong in bit/byte manipulation.
Aucun commentaire:
Enregistrer un commentaire