Сейчас на форуме: (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Отучить программу от жесткой привязки к firmware аппаратной части
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 сентября 2010 18:45
· Личное сообщение · #1

Приветствую, Комрады!
Есть программа, собирающая данные с удаленных устройств Bluetooth.
ExeInfo PE сказал - Borland Delphi ( 2.0 - 7.0 ) 1992 - www.borland.com.
К машине, на которой установлена данная программа есть промышленный Serial Bluetooth Adapter. Перед началом сбора данных программа спрашивает у данного адаптера версию прошивки AT командой (ATI?), на что получая ответ (F/W version: v4.15), сравнивает его с совместимыми, и начинает процедуру сбора данных.
Купили еще один такой адаптер, а у него версия прошивки немного отлична от того, который у нас был (4.35), соотвественно процедуру проверки прошивки он не проходит.
Открыл исполняемый файл блокнотом, нашел данный кусок
Код:ATI? яяяя F/W VERSION: SPP_03 яяяя F/W VERSION: v4.15 яяяя F/W VERSION: v4.19 яяяя*
Очевидно, это тот самый список поддерживаемых прошивок.
Попробовал WinHEX изменить 4.15 на 4.35, он его увидел, установил связь, слил данные, но завершать сеанс связи не хочет, думаю нарушилась какая то последовательность из-за такого грубого вмешательства.
Подскажите где можно аккуратно изменить данный параметр не испортив тем самым алгоритм работы программы, чтобы можно было работать и с новыми версиями прошивок данного адаптера.
Спасибо.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 11 сентября 2010 22:01
· Личное сообщение · #2

И чем тебе это мешает, если всё прошло нормально, кроме разрыва?
И что должны подсказать, если нет ни линка, ничего? К тому же тестить придётся наверняка патч.



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 сентября 2010 00:07 · Поправил: CY
· Личное сообщение · #3

Все дело в том, что при запросе, переданного с СОМ3, система запускает процедуру считывания с устройства, сопоставленного данным с СОМ3. Процедура считывания представляет собой набор АТ команд.
Сначала программа отправляет команду АТ для проверки есть ли там Bluetooth, затем командой ATI? спрашивает номер прошивки. Если прошивка совпадает - запускается процедура работы с промышленным блютузом, если не совпадает - запускается процедура работы с обычным копеечным блютуз адаптером.
Разница в том, что промышленному адаптеру нужно передавать МАК адрес удаленного устройства и ПИН для связывания, затем команду на установку связи, а потом процедуру получения данных с устройства. Для простого блютуза - сразу запускается процедура получения данных, расчитывая на то, что авторизацию и соединение уже произвел пользователь.
В моем случае, когда я подмениваю WinHEX 4.15 на 4.35 в протоколе работы появляются лишние символы, связь может зависнуть, а может пройти до 99 процентов и остановится. Хотя система должна была считать данные и стать в режим ожидания для следующих устройств.
Я так пологаю, что тут нужен более тонкий подход, я к сожалению, в этом деле делитант. Прошу помощи.



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 сентября 2010 10:14 · Поправил: CY
· Личное сообщение · #4

наверное, основная задача - переучить реагировать с SPP_03 на v4.35
Простой заменой не вышло, наверное потому что в первом варианте 6 символов, а во втором 5

Проблема решена. Тему можно закрывать


 eXeL@B —› Вопросы новичков —› Отучить программу от жесткой привязки к firmware аппаратной части
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати