Мне нужно отправить char* (команду) с серийным номером WiringPi. Как мне это сделать, если для serialPutchar (int fd, unsigned char c) нужен беззнаковый символ?
int SendCommand(int serial, char *command, char *expectedResponse, char response []) {
serialFlush(serial);
serialPutchar(serial, command);
return 1;
}
У меня все еще что-то не так с моим кодом, и я не знаю, что это такое.
Я использую функцию SendCommand для отправки данных на сервер. Однако я отправляю пустой пакет NULL, когда пытаюсь отправить «а».
я не понимаю :(
int SendCommand(int serial, char *command, char *expectedResponse, char response []) {
int max_Retries = 0;
int i;
char data[256], *pData = data;
serialFlush(serial);
for(i = 0; i <= strlen(command); i++) {
serialPutchar(serial, command[i]);
}
delay(100);
while(serialDataAvail(serial)){
*pData++ = serialGetchar(serial);
}
while(strstr(data, expectedResponse) == (const char*) NULL){
if(max_Retries >= 150) {
printf("\nSIM7070_SendCommand - The expected response hasn't been found\n");
return 0;
}
else{
*pData++ = serialGetchar(serial);
max_Retries++;
delay(100);
}
}
if(strstr(data, expectedResponse) != (const char*) NULL){
*pData= '\0';
printf ("%s", data);
printf("\nSIM7070_SendCommand - The expected response has been found\n");
if(response != NULL){
strcpy(response, data);
}
return 1;
}
return 0;
}
SendCommand(serial, "AT+CASEND=1,1\r\n", ">", NULL);
serialFlush(serial);
serialPutchar(serial,'a');
serialFlush(serial);
serialPuts
будет намного проще, чемserialPutchar
. - person emi   schedule 12.02.2021