-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
THN800 #12
Comments
Здравствуйте. |
Хорошо. Завтра сделаю запись множества пакетов и скину сюда. Этот датчик у меня 7 лет на ардуине работал и я его через этот код C844 разбирал с помощью библиотеки ookDecoder. У него протокол v3. Если нужен этот старый код с ookDecoder'ом то могу тоже закинуть, там CRC считалось без проблем |
Собрал пакеты и прикрепил в файл. 10 штук с разной температурой: |
Добавил ваш датчик в библиотеку. Скачайте, проверьте. Там расчёт CRC оказался похож на THN132. |
Большое спасибо! Датчик распознается отлично! |
Есть еще небольшой вопрос. Когда Вы изучали протокол Oregon Scientific RF Protocols для написания этой библиотеки, то не встречали ли описание пакетов передачи данных от погодной станции Oregon Scientific I300 или I600? |
Нет, с таким не сталкивался. |
Скачайте библиотеку заново. Там кое что подправил, в т.ч. в ашнике можно изменением PACKET_LENGTH выделять память под пакеты большой длины. Вам это возможно поможет. И с вас образцы пакетов с осадкометра... |
да, спасибо, я уже подправил код на 48 ниблов под свою метеостанцию. Пакеты сегодня запарсил, но если мало, могу наловить больше. |
Спасибо. добавил в библиотеку проверку CRC8 для PCR800. Проверьте у себя, если данные с датчика будут расшифровываться, как и прежде, значит всё правильно. |
Проверил. Все прекрасно работает с обновленной библиотекой и PCR800 распознается без проблем! Огромное спасибо! |
Я вижу, что Вы хорошо разбираетесь в алгоритмах расчета crc. Не могли бы Вы помочь расшифровать алгоритм контрольной суммы пакетов от метеостанции? Там 4 нибла и первые два я расшифровал - это простая сумма всех предыдущих байтов. А вот с последними двумя какая то засада( |
Я вас разочарую - я очень плохо разбираюсь в этих алгоритмах. Но выучил простое правило - у Орегона последний байт посылки - это обычно CRC8 за ислючением контрольной суммы и ID датчика. Образующий полином - 07h, а вот стартовая сумма бывает разная . Для её поиска у меня написана утилитка. Причешу её и выложу. |
В общем, выдаю удочку, ловить будете сами :). Скачайте библиотеку заново и воспользуйтесь утилитой в примерах. Нужно забить данные с трёх разных пакетов и выставить размер посылки. Утилита выдаст параметры (если найдёт) для подсчёта CRC8, которые будут нужны при вызове check_oregon_crcsum(). |
Благодарствую, барин! Вечером затестим "шайтан-машину") |
да прога хорошая! crc хорошо считает даже на "левых" датчиках из интернета) |
Ну так надо искать в чём дело. Может в длинных пакетах не исключены из расчёта 6-ой и 7-ой ниблы? |
да я по разному пробывал и 6,7 ниблы исключал и другие. Пакет 2 самый короткий - 43нибла и в нем полином находится, а вот в других никак. Пробывал их сократить до 43ниблов, но тоже не дает результата |
Взял из вашего файла несколько образцов: для посылок 49 ниблов а для посылок 47 ниблов Всё вроде сходится... |
да Вы просто гений! Я почему то не догадался отфильтровать пакеты по первому байту и фильтровал только по длине посылки. А теперь все сошлось. Большое спасибо! Напишите, куда отправить Вам "благодарность" на пивасик) |
Тут провёл кое-какие изыскания и немного переписал расчёт CRC для датчиков третьей версии. Ну и пример для расчёта обновил. для v3.0 оказалось, что начальная сумма везде нулевая и при расчёте используется ID. Т.е. они унифицировали метод расчёта |
Добрый день!
Протестировал Вашу библиотеку Oregon_NR в своем проекте метеостанции. Все работает отлично. Большое спасибо! Использовал датчик THGN132N и на нем декодер работает без проблем. Так же тестировал дождемер PCR800 и для него воспользовался модифицированной библиотекой Saphareas/Oregon_NR. И этот датчик работает без проблем.
У меня еще есть термометр THN800. Можно ли его добавить в библиотеку?
Пакет имеет вид C8441EE16810949B..., он короче, чем у THGN132N
C8441EE16810949B...
Код датчика C844
CHNL: 0
TMP: 18.6C
BAT: F
ID: EE
если я правильно перевел)
The text was updated successfully, but these errors were encountered: