[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);
}
length--;
}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;
}
length++;
pData++;
}
}
E-mail: info@telesys.ru