Как быстро и точно отправлять данные изображения BMP через последовательный? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как быстро и точно отправлять данные изображения BMP через последовательный? [закрыто]

Сообщение Anonymous »

Я разрабатываю приложение C ++ для встроенного Linux.
Это приложение имеет функцию отправки данных BMP -изображения, хранящихся в хранилище Linux. (Байт 8192 - это размер буфера для последовательной отправки во встроенном Linux)
иначе данные будут несовершенными на приемном компьютере. 115200.
и это мои функции для открытия последовательного порта и отправки данных. < /P>
int portFd;

bool Open() {
portFd = open("/dev/ttyGS0", O_RDWR | O_NOCTTY);

if (portFd < 0) {
return false;
}

return true;
}

void Write(char *imgData, int len) {
int oneWriteSize = 8192;
while (len > oneWriteSize) {
write(portFd, imgData, oneWriteSize);
imgData += oneWriteSize;
len -= oneWriteSize;
std::this_thread::sleep_for(std::chrono::milliseconds(8));
}

if (len > 0) {
write(portFd, imgData, len);
}
}
< /code>
Например, если размер данных изображения составляет 263222 байт, приложение отправляет 32 раза 8192 байта. Finnaly, отправьте последнее 1078 байт.
возвращаемое значение write () всегда было равным размеру отправленных данных.
Однако размер данных, фактически полученных приемником, был меньше, чем исходный размер данных, если интервал 8MS не был вставлен. /> О. Я так дурач. Поэтому Windows отсутствовали полученные данные.
Windows App должен получить все данные, отправленные с Linux одновременно. < /P>

Подробнее здесь: https://stackoverflow.com/questions/796 ... via-serial
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»