Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / работа с I_BUTTON в VBA / 3 сообщений из 3, страница 1 из 1
24.10.2007, 15:19
    #34891620
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с I_BUTTON в VBA
Здравствуете, уважаемые!

Если есть у кого-нить опыт работы с "таблетками" i-button, помогите пожалуйста.

Необходимо только считать SN "таблетки"

пробую через стандартные дрова от производителя. там работа через api-функции организована. подключаю девайт
...
Рейтинг: 0 / 0
24.10.2007, 15:24
    #34891637
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с I_BUTTON в VBA
извиняюсь, сорвалось
в общем подключаю девайс и начинаю работу

Код: plaintext
SHandle = TMExtendedStartSession( 1 , I, vbNullString)
переменная I принимает значени от 1 до 15.
затем проверяю корректность
Код: plaintext
1.
If (SHandle >  0 ) Then
        flag = TMValidSession(SHandle)
говорит что всё нормально!
а потом что ни пытаюсь
читать ROM
Код: plaintext
flag = TMRom(SHandle, state_buffer( 0 ), SelectROM( 0 ))
или просто найти устройство в сети 1-wire
Код: plaintext
flag = TMSearch(SHandle, state_buffer( 0 ),  0 ,  1 , &HF0)

выдаёт ошибку "сессия не открыта"
...
Рейтинг: 0 / 0
18.12.2007, 14:43
    #35017750
techmike
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с I_BUTTON в VBA
в SelectROM(0)) должен быть ноль, чтобы с помощью TMRom считать серийник устройства. я делаю для DS18b20 так и все работает:
MyHandle = TMExtendedStartSession(1, 1, vbNullString)
If (MyHandle < 0) Then
MsgBox ("1-Wire network is NOT available")
Exit Sub
End If
'1-Wire network is valid and setup
dmmy = TMSetup(MyHandle) ' проверяем что девайс online! =)
ReDim ROMid(j)
search = TMFirst(MyHandle, state_buffer(0)) 'ищем первый девайс
If (search >= 1) Then 'нашли девайс
ROM(0) = 0 'признак чтения серийника
flag = TMRom(MyHandle, state_buffer(0), ROM(0)) 'читаем серийник найденого девайса
RomString = ""
For i = 7 To 0 Step -1
'ROMid(j).ROMOrig(7 - i) = ROM(7 - i)
If ROM(i) <= &HF Then
RomString = RomString + "0"
ROMid(j).ROMOrig(i) = 0
Else
RomString = RomString + Hex$(ROM(i))
ROMid(j).ROMOrig(i) = ROM(i)
End If
Next i
ROMid(j).ROM = RomString
j = j + 1
End If

Do While (search >= 1)
search = TMNext(MyHandle, state_buffer(0)) 'ищем первый девайс
If (search >= 1) Then 'нашли еще один девайс
ROM(0) = 0
flag = TMRom(MyHandle, state_buffer(0), ROM(0)) 'читаем серийник найденого девайса
RomString = ""
ReDim Preserve ROMid(UBound(ROMid) + 1)
For i = 7 To 0 Step -1
'ROMid(j).ROMOrig(7 - i) = ROM(7 - i)
If ROM(i) <= &HF Then
RomString = RomString + "0"
ROMid(j).ROMOrig(7 - i) = 0
Else
RomString = RomString + Hex$(ROM(i))
ROMid(j).ROMOrig(7 - i) = ROM(7 - i)
End If
Next i
ROMid(j).ROM = RomString
End If
Loop

Этим кодом нахожу все девайсы на шине и помещаю изх в массив ROMid и т.д. Буду вопросы- пиши в личку.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / работа с I_BUTTON в VBA / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]