И опять про Sidereal Servo II
Jul. 28th, 2022 12:13 pmНу просто жесть, как же нарукожопили там... В общем, теоретически, можно получать "одним махом" всю статистику в бинарном виде. Практически же, пока телескоп едет, более-менее данные идут (правда, то 41 байт, как положено, а то бывает и 40 или 39, причем, 40 очень часто), но как только готовится к останову в точке назначения, внезапно или CRC начинает не совпадать, или вообще затыкается передача данных!
В качестве посредника с USB там используется FTDI. И почему-то эта шняга буферизует данные по 8 байт. Да и вообще как-то уж очень медленно получается "общение": в теории, на 19200 бод можно передать не меньше 1920 байт в секунду (это если каждому старт/стоп давать отдельно, а если пачкой, то вообще 2399 байт!), фактически же отправить запрос и получить ответ длиной до 8 байт — 16миллисекунд! А ответ до 16 байт приходит вдвое дольше: 32миллисекунды!!! Это что ж там за тормоза-то такие? У меня стандартный таймаут на select - 5мс, т.е. не здесь собака порылась. Кстати, не всегда бывает разбиение по 8 байт: иной раз приходит 7 байт, а потом еще кусочек (т.е. после седьмого байта была пауза больше 5мс!).
Как они вообще там это делают, что умудряются так охрененно медленно данные передавать? Похоже, таки все упирается в убогий микроконтроллер, который, видимо, даже не умеет в DMA, а разработчик был настолько рукожоп, что вместо того, чтобы, коль нет DMA, отправлять буфер в прерываниях (чтобы не мешать основной программе), отправляет его посимвольно внутри суперлупа, пройдя очередной цикл!
Благо, хоть заработали бинарные посылки (т.е. можно "в одном флаконе" отправить новые цели и скорости по обеим осям сразу), правда, не факт, что они тоже не станут затыкаться при слишком частом использовании, как проверка статистики, надо проверить.
Вот я уже неоднократно встречаю такое адово рукожопие, которое отправляют "в продакшн". Уроды чертовы! Намедни мужики сняли "новую хранцузскую метеостанцию с оллскаем", которая висела полгода в опытной эксплуатации на крыше лабкорпуса. "Герметичная" упаковка с метеодатчиками оказалась по края заполненной водой. Цена на этот кусок говна - какие-то адовы миллионы, а напичкано это все наколенными поделями на абдурине (да еще и "под ключ" оно вообще не готово)! По прикидкам, себестоимость той "метеостанции" даже до 300тыр не дотягивает... Аналогично и с этим Sidereal Servo, за который почти килобакс требуют!
В качестве посредника с USB там используется FTDI. И почему-то эта шняга буферизует данные по 8 байт. Да и вообще как-то уж очень медленно получается "общение": в теории, на 19200 бод можно передать не меньше 1920 байт в секунду (это если каждому старт/стоп давать отдельно, а если пачкой, то вообще 2399 байт!), фактически же отправить запрос и получить ответ длиной до 8 байт — 16миллисекунд! А ответ до 16 байт приходит вдвое дольше: 32миллисекунды!!! Это что ж там за тормоза-то такие? У меня стандартный таймаут на select - 5мс, т.е. не здесь собака порылась. Кстати, не всегда бывает разбиение по 8 байт: иной раз приходит 7 байт, а потом еще кусочек (т.е. после седьмого байта была пауза больше 5мс!).
Как они вообще там это делают, что умудряются так охрененно медленно данные передавать? Похоже, таки все упирается в убогий микроконтроллер, который, видимо, даже не умеет в DMA, а разработчик был настолько рукожоп, что вместо того, чтобы, коль нет DMA, отправлять буфер в прерываниях (чтобы не мешать основной программе), отправляет его посимвольно внутри суперлупа, пройдя очередной цикл!
Благо, хоть заработали бинарные посылки (т.е. можно "в одном флаконе" отправить новые цели и скорости по обеим осям сразу), правда, не факт, что они тоже не станут затыкаться при слишком частом использовании, как проверка статистики, надо проверить.
Вот я уже неоднократно встречаю такое адово рукожопие, которое отправляют "в продакшн". Уроды чертовы! Намедни мужики сняли "новую хранцузскую метеостанцию с оллскаем", которая висела полгода в опытной эксплуатации на крыше лабкорпуса. "Герметичная" упаковка с метеодатчиками оказалась по края заполненной водой. Цена на этот кусок говна - какие-то адовы миллионы, а напичкано это все наколенными поделями на абдурине (да еще и "под ключ" оно вообще не готово)! По прикидкам, себестоимость той "метеостанции" даже до 300тыр не дотягивает... Аналогично и с этим Sidereal Servo, за который почти килобакс требуют!