[an error occurred while processing this directive]
|
Пример: передача массива
void PutData(char *pData, int length)
{
putchar(0x0A);//Передача символа начала пакета
while(lenght != 0)
{
char tmp = *pData;
pData++;
switch(tmp)
{
case 0x0A:
case 0x0D:
case 0x0C:
putchar(0x0C);
putchar(~tmp);
break;
default:
putchar(tmp);
}
putchar(0x0D);//Передача символа конца пакета
}прием
#define ERROR 0xFFFFFFFF
int GetData(char *pData)
{
int length = 0;
while(getchar()!=0x0A);//Ждем начала передачи
for(;;)
{
char tmp = getchar();
switch(tmp)
{
case 0x0D:
//Принят конец пакета
return length;case 0x0A:
//принят символ начала пакета, ошибка приема данных
return ERROR;case 0x0C:
//Принят символ исключения
tmp = getchar;//Принимаем след байт.
tmp = ~tmp;
*pData = tmp;
break;default:
*pData = tmp;
}
pData++;
}
}
E-mail: info@telesys.ru