Не, так не интересно. Мне фид-бэк нужен.
В таком режиме у меня и было изначально, в слепую тоже и хобеты и скрины грузил.
Что значит - вслепую?
По идее - надо протокол делать. с CRC. и всё.
А RTS-CTS - костыль.
Не, так не интересно. Мне фид-бэк нужен.
В таком режиме у меня и было изначально, в слепую тоже и хобеты и скрины грузил.
SfS wrote:А RTS-CTS - костыль.
SfS wrote:Вообще я на работе управлял моднмом по трём проводам. RTS-CTS - вовсе не нужны.
DimkaM wrote:Понял, что дурак, настройки остались со времён трёх проводков.
Завтра проверю.
deathsoft wrote:если хардваре флоу контрол реализован в авр
А как узнать, что принимающая сторона готова принять новую порцию данных? То, что буфер передачи пустой, ничего не значит.
deathsoft wrote:Ну-ну, вот допустим скорость передачи 115200 (между компом и модемом), и в модеме буфер забился (скорость линии 33600) ну и как ты сей факт установишь? Ну и тоже саоме при связи между компом и приборами (которые могут тормозить передачу). Конечно если прибор работает на 9600 и никогда не тормозит передачу - то достаточно и 3х проводов.
DimkaM wrote:И ещё интересен простейший алгоритм чексуммы, XOR всех байтов блока прокатит? И вообще какова вероятность порчи данных?
/*
Name : CRC-8
Poly : 0x31 x^8 + x^5 + x^4 + 1
Init : 0xFF
Revert: false
XorOut: 0x00
Check : 0xF7 ("123456789")
MaxLen: 15 байт(127 бит) - обнаружение
одинарных, двойных, тройных и всех нечетных ошибок
*/
unsigned char Crc8(unsigned char *pcBlock, unsigned int len)
{
unsigned char crc = 0xFF;
unsigned int i;
while (len--)
{
crc ^= *pcBlock++;
for (i = 0; i < 8; i++)
crc = crc & 0x80 ? (crc << 1) ^ 0x31 : crc << 1;
}
return crc;
}
SfS wrote:Так как любое чётное кол-во ошибок в бите - за ошибку воспринято не будет
SfS wrote:обнаружение
одинарных, двойных, тройных и всех нечетных ошибок
Return to Пентева - софт и железо
Users browsing this forum: Google [Bot] and 1 guest