BlueTooth для Sokkia серии SET (и не только)

Тема в разделе "Сделай Сам", создана пользователем Philin, 13 июн 2016.

  1. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Нашёл интересную статью, о том как перепрограммировать блютус модули hc-06 и ему подобные.На торренте есть BlueLab SDK, в нем много всякой всячины: библиотеки, документация,примеры.В примерах есть программы реализующие SPP профиль мастера и подчиненного.Это нужно для конфигурирования устройства на 7 бит данных,если кому это нужно.Можно так же запрограммировать cts/rts управление потоками, то есть подавать логическую единицу, в блютус адаптере, на какой нибудь пин(сигнал о приостановки передачи), в случае переполнения буфера приема.А с другого пина, считывать логику, если приходит логическая единица, то останавливать передачу.В простейшем варианте, можно отключить rts/cts, просто выводом входящего контакта cts на землю, со стороны прибора. Тем самым сигнализируя прибору, что блютус адаптер готов принимать данные. Но вместе с тем нужно будет смериться с возможной потерей данных из за плохой радио связи. Думаю, что в ближнем бою это должно работать без каких либо потерь данных, что нам собственно и нужно.
     
  2. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Кажется удалось решить проблему конфигурирования блютус адаптера в настройки 1200 бод, паритет even, 7 бит данных, стоп бит 1.Среди известных мне прошивок, в режиме 7 бит данных и паритетом even, может работать только НС-05.Для этого нужно просто перевести модуль в even, а 7 бит данных переведется автоматом, с 8 бит.Но как уже говорил выше не возможно с помощью AT команд перевести его на скорость 1200 бод.Вообщем решил с наскоку осилить программирование CRS микроконтроллеров, не получилось пока.Нашел книгу азов программирования AVR микроконтроллеров, начал читать.Вообщем понял, что у тех и у других гарвардская архитектура , то есть память делится на три вида: память программ(Flash), оперативная память(RAM), энергонезависимая память(ROM), у каждой 8-разрядной ячейки памяти есть свой адрес, с помощью которого можно производить операции с ней не зависимо от типа памяти.8 разрядные ячейки могут объединятся в 16 разрядные.Вообщем не углубляясь дальше, могу сказать, что настройки UART(параметры передачи данных) записываются в виде Адрес(регистр)=Ключ.Например с помощью программы PSTool можно менять всевозможные настройки модуля, но 7 бит данных я там не нашел, видимо в памяти записано больше ключей чем их может изменить программа.Можно делать дамп ключей в виде текстового файла.Вот отрывок:

    // PSKEY_BDADDR
    &0001 = 0050 30f5 0031 98d3
    // PSKEY_COUNTRYCODE
    &0002 = 0000// North America and Europe
    ................................................................
    ................................................................
    // PSKEY_UART_BAUDRATE
    &01be = 0005// 1200 kbaud

    // PSKEY_UART_CONFIG_BCSP
    &01bf = 0806
    // PSKEY_UART_CONFIG_H4
    &01c0 = 08a8
    // PSKEY_UART_CONFIG_H5
    &01c1 = 1806
    // PSKEY_UART_CONFIG_USR
    &01c2 = 08a8
    // PSKEY_UART_TX_CRCS
    &01c3 = 0001
    // PSKEY_UART_ACK_TIMEOUT
    &01c4 = 00fa
    // PSKEY_UART_TX_MAX_ATTEMPTS
    &01c5 = 0000
    // PSKEY_UART_TX_WINDOW_SIZE
    &01c6 = 0004
    // PSKEY_UART_HOST_WAKE
    &01c7 = 0004 01f4 000a 0000
    // PSKEY_HOSTIO_THROTTLE_TIMEOUT
    &01c8 = 0003 0d40
    // PSKEY_PCM_ALWAYS_ENABLE
    &01c9 = 0000// False
    // PSKEY_UART_HOST_WAKE_SIGNAL
    &01ca = 0000
    // PSKEY_UART_CONFIG_H4DS
    &01cb = 08a8
    // PSKEY_H4DS_WAKE_DURATION
    &01cc = 0020
    // PSKEY_H4DS_MAXWU
    &01cd = 0032
    // PSKEY_H4DS_LE_TIMER_PERIOD
    &01cf = 00fa
    // PSKEY_H4DS_TWU_TIMER_PERIOD
    &01d0 = 00fa
    // PSKEY_H4DS_UART_IDLE_TIMER_PERIOD
    &01d1 = 0032
    // PSKEY_PCM_SLAVE_PROVIDE_CLOCK
    &01e5 = 0000// False
    &01eb = 0004
    &01ec = 0007 a120 0000 01f4 0000 0000
    &01ed = 0031
    &01f0 = 0000
    ...................................................................
    ...................................................................
    Проблема была в том, что в настройках PSTool, так же нельзя выбрать скорость 1200 бод.Но сделав дамп ключей, изменив его в ручную, через блокнот и залив его обратно добавляет новую скорость в список ключей.

    Baud rate = pskey_value/0.004096

    Some common values are:

    1k2 baud - 5 (0x0005)

    38k4 baud - 157 (0x009d)
    57k6 baud - 236 (0x00ec)
    115k2 baud - 472 (0x01d8)
    230k4 baud - 944 (0x03b0)
    460k8 baud - 1887 (0x075f)
    921k6 baud - 3775 (0x0ebf)
    1382k4 baud - 5662 (0x161e)
     
  3. Philin

    Philin Форумчанин

    А стоит оно того?

    1200бод, да ещё и 7 бит, это же первое поколение приборов. Есть ли смысл вообще пытаться с ними связываться? Это же разработки 20-30-летней давности, уже 2/3 таких приборов по идее умерли, а остальные либо не испльзуются, либо на ладан дышат.
     
  4. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    В том то и дело, что люди спрашивают.У меня есть такой прибор в руках и он довольно таки шустро работает при этих настройках.Есть идея прикрутить маленький экран и пару кнопок, для настройки модуля на нужные параметры.Хотя честно говоря овчинка выделки не стоит, но здесь больше спортивный интерес, да и чтоб возможность такая была, мало ли, что.
     
    sherkhan нравится это.
  5. Philin

    Philin Форумчанин

    А чего ему тормозить-то... 150байт в секунду вполне хватит и на команды и на один очень длинный ответ прибора (или на два коротких).

    Я предыдущее устройство собирал на HC-05, а новое собрал на HC-06. Проверил дальность связи (сильно не заморачивался, дальше 100м не отходил), связь стабильная.
     
  6. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Да, HC-06 то что нужно, но к сожалению универсальности Topcon-Sokkia не выйдет в ряде случаев.
     
  7. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Кстати такие настройки связаны с особенностями протокола ввода вывода Topcon-а, а не с тем, что устройства старые, кроме того они позволяют производить контроль передачи данных не используя контрольную сумму.
     
  8. Philin

    Philin Форумчанин

    Оффтоп

    Да нет. Такие настройки связаны с тем, что прибор физически не приспособлен для любого языка кроме латиницы (первая половина стандартной кодировки). Кроме этого он не способен воспринимать и воспроизводить не только символы расширенной кодировки, но также и некоторые спецсимволы. В утиль, в общем - чисто англоязычный прибор не для продажи и использования за пределами...

    Подозреваю, что криптографы и пр. с вами не согласятся. Вроде как с точностью до наоборот (если я ничего не путаю).

    Грубо говоря... Условно:
    1. 1 бит (состояние 0 или 1), вероятность сбоя 1/2
    2. 8 бит, вероятность сбоя для одного бита такая же, но в целом невероятно чтобы сбой произошёл сразу во всех 8 битах, таким образом вероятность сбоя тем меньше чем больше бит в пакете данных.
    В общем - чем меньше бит в пакете, тем больше требуется контроля для них.
     
  9. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Из Википедии:
    В последовательной передаче данных часто используется формат 7 бит данных, бит чётности, один или два стоповых бита. Такой формат аккуратно размещает все 7-битные ASCII символы в удобный 8-битный байт.
    При обмене данными применяется ASCII символы из стандартной таблицы не из расширенной, там только латиница и управляющие символы.Аналогично, как мы оба знаем и в современном Sokkia.
    --- Сообщения объединены, 22 авг 2016, Оригинальное время сообщения: 22 авг 2016 ---
    Контроль некой двоичной последовательности (например, машинного слова) с помощью бита чётности также называют контролем по паритету. Контроль по паритету представляет собой наиболее простой и наименее мощный метод контроля данных. С его помощью можно обнаружить только одиночные ошибки в проверяемых данных. Двойная ошибка будет неверно принята за корректные данные. Поэтому контроль по паритету применяется к небольшим порциям данных, как правило к каждому байту, что даёт коэффициент избыточности для этого метода 1/8.
     
  10. Philin

    Philin Форумчанин

    Оффтоп

    Нет :)

    SDR33 подразумевает 8 бит расширенную таблицу.

    Даже древние приборы передают все 8 бит везде, а заметить это можно в блоке "00NMSDR33". Если прибор не чисто английский, то название месяца в нём на том языке (в той расширенной части кодировки) в котором работает прибор.

    Вот такое вот дело.

    Т.е. 7 бит просто не хватит на достоверную передачу данных Sokkia. Вместо данных будет каша.

    В прибор я могу записать точки с русскими именами. Предварительно только надо понять в какой 8-битной кодировке он работает KOI8-R или Альтернативная или CP866.

    Да, с клавиатуры прибора невозможно ввести русские символы, но сам прибор нормально воспринимает принятые через COM порт точки с русскими именами (только не надо пытаться в него передавать виндовую CP-1251)
     
    igor kruchkovskiy нравится это.
  11. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Да, точно при передаче файла с русскими именами точек с настройками в 7 бит тахеометр заменяет их на латинские.В остальном все в роди бы идентично.В принципе не вижу в этом ничего плохого, до того момента пока не придумали тахеометры с русской клавиатурой.Честно говоря не знаю человека, который именует точки Кириллицей.
     
  12. Philin

    Philin Форумчанин

    Оффтоп

    Просто никто не знает, что это возможно :) Да и софт только "буржуйский", который тоже не в состоянии работать с кириллицей.

    Я теперь слои (коды точек) при съёмке именую только кириллицей. Т.к. теперь такая возможность есть :)
     
    sherkhan нравится это.
  13. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    А я до сих пор опасаюсь отсутствия оной в буржуйском софте, да и легко писать русские слова латинскими буквами, не парит это вовсе.
    --- Сообщения объединены, 22 авг 2016, Оригинальное время сообщения: 22 авг 2016 ---
    Забыл уточнить, что прибор замечательно передает на скоростях 1200- 9600 бод, в сочетании с 8 бит данных или 7, но управление с контроллера получается только при 1200,7,E,1 и больше ни как.
     
  14. Палыч

    Палыч Форумчанин

    А для чего такие расстояния? Вы же не с роботом работаете,
     
  15. Мимокрокодил

    Мимокрокодил Форумчанин

    Я купил этот планшет, после сообщения Филина
     
  16. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    И как ощущения?
     
  17. Мимокрокодил

    Мимокрокодил Форумчанин

    Пока так себе... Magnet field полной версии стоит около 70000 и у планшета слишком большой экран. Не очень удобно и веху держать, и в планшет тыкать. Нужно что-то с креплением думать. Пока только такие впечатления. Отходил от таха на 75 метров. Потерь связи небыло. В солнечную погоду плохо виден створоуказатель, но это не имеет отношения к планшету)))
    --- Сообщения объединены, 23 авг 2016, Оригинальное время сообщения: 23 авг 2016 ---
    К самому планшету претензий нет...
     
  18. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    Поставьте Карлсон.У вас на тахе штатный блютус?
     
  19. Мимокрокодил

    Мимокрокодил Форумчанин

    да. А карлсон бесплатный?
     
  20. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    ))))
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление