Я работаю с EDC mpos, чтобы получить подпись пользователя
Теперь я сохраняю подпись клиента в виде изображения, например «sign.bmp», затем хочу отправить это изображение на последовательный порт (у меня есть приложение C # для получения данных).Поэтому я не могу отправить изображение на последовательный порт.Вот что я пробовал:
void ReadImageToBuffer(char fileName[],char szTemp[])
{
FILE *file;
long fileLength;
char *buffer;
lcdCls();
SignatureHeaderBar();
lcdDisplay(0,3,DISP_CFONT|DISP_CLRLINE,"file name: %s",fileName);
lcdFlip();
kbGetKey();
// open file
file = fopen(fileName,"r");
if (!file)
{
lcdCls();
SignatureHeaderBar();
lcdDisplay(0,3,DISP_CFONT|DISP_CLRLINE,"Unable to open file %s",fileName);
lcdFlip();
kbGetKey();
}
else
{
lcdCls();
SignatureHeaderBar();
lcdDisplay(0,3,DISP_CFONT|DISP_CLRLINE,"file opened");
lcdFlip();
kbGetKey();
// Get file length
fseek(file, 0, SEEK_END); // Jumpt to the end of file
fileLength = ftell(file); // Get current byte offset
fseek(file, 0, SEEK_SET); // Jump back to begin at file
// allocate memory
buffer = (char *)malloc((fileLength+1)*sizeof(char));
if (!buffer)
{
lcdCls();
SignatureHeaderBar();
lcdDisplay(0,3,DISP_CFONT|DISP_CLRLINE,"Memory error");
lcdFlip();
kbGetKey();
}
else
{
// read file content
fread(buffer, fileLength, 1, file);
lcdCls();
SignatureHeaderBar();
lcdDisplay(0,3,DISP_CFONT|DISP_CLRLINE,"readed content");
lcdFlip();
kbGetKey();
}
// close file
fclose(file);
lcdCls();
SignatureHeaderBar();
lcdDisplay(0,3,DISP_CFONT|DISP_CLRLINE,"szTemp size %d",strlen(szTemp));
lcdDisplay(0,5,DISP_CFONT|DISP_CLRLINE,"buffer %d",buffer ? 1 : 0);
lcdDisplay(0,7,DISP_CFONT|DISP_CLRLINE,"signResult size %d",strlen(signResult));
lcdFlip();
kbGetKey();
//void ExternalSerialWrite(char dataByte[]);
ExternalSerialWrite(buffer);
}
}
Я не разработчик C, я знаю только базовый C и поиск в Google "Как ..." в интернете
Так что моя проблема в том, какотправить изображение на последовательный порт (в моем случае я не могу получить данные изображения в байтах)
Вот мой ExternalSerialWrite ()
void ExternalSerialWrite(char dataByte[])
{
write(*uartIfd, dataByte, strlen(dataByte));
}