BLE

BLE

Этот модуль содержит функции работы с Bluetooth Low Energy Advertisements.

Поддерживается прием и передача пакетов типа Eddystone UID, URL, TLM, а также iBeacon.

b = bt.service.beacon.eddystone_uid(mac, tx_power, namespace, instance)

Создать пакет типа Eddystone UID.

Агрументы:

  • mac: адрес передача; строка, получаемая, например, командой cpu.getmac(2, 1).
  • tx_power: число; мощность передатчика.
  • namespace: строка.
  • instance: строка.

Возвращает: объект Beacon.

b = bt.service.beacon.eddystone_url(mac, tx_power, url)

Создать пакет типа Eddystone URL.

Агрументы:

  • mac: адрес передача; строка, получаемая, например, командой cpu.getmac(2, 1).
  • tx_power: число; мощность передатчика.
  • url: строка; передаваемый URL.

Возвращает: объект Beacon.

b = bt.service.beacon.eddystone_tlm(mac, tx_power, mv, deg)

Создать пакет типа Eddystone TLM.

Агрументы:

  • mac: адрес передача; строка, получаемая, например, командой cpu.getmac(2, 1).
  • tx_power: число; мощность передатчика.
  • mv: число; напряжение в милливольтах.
  • deg: число; температура в градусах.

Возвращает: объект Beacon.

bt.service.beacon.eddystone_tlm_update(beacon, mv, deg)

Обновить значения в пакете Eddystone TLM

Агрументы:

  • beacon: объект beacon.
  • mv: число; напряжение в милливольтах.
  • deg: число; температура в градусах.

Возвращает: ничего или исключение.

b = bt.service.beacon.ibeacon(mac, tx_power, uuid, major, minor)

Создать пакет типа iBeacon.

Агрументы:

  • mac: адрес передача; строка, получаемая, например, командой cpu.getmac(2, 1).
  • tx_power: число; мощность передатчика.
  • uuid: число.
  • major: число.

Возвращает: объект Beacon.

Beacon:start()

Запустить передачу

Beacon:stop()

Остановить передачу

Пример:

mac = cpu.getmac(2, 1)
tx_power = -59                        -- измеряемая мощность (Tx Power)

b1 = bt.service.beacon.eddystone_uid(mac, tx_power, "3F3B51B60B88EF9949E5", "CF484185AE0B")
b2 = bt.service.beacon.eddystone_url(mac, tx_power, "https://open-dev.ru")
b3 = bt.service.beacon.eddystone_tlm(mac, tx_power, 3220, 26)
b4 = bt.service.beacon.ibeacon(mac, tx_power, "00112233445566778899AABBCCDDEEFF", 100, 1)

b1:start()
b2:start()
b3:start()
b4:start()

bt.attach(mode)

Включить BT приемник

Агрументы:

  • mode: число; режим. Поддерживается только bt.mode.BLE Возвращает: ничего.

bt.scan.start(cb)

Запустить режим сканирования с отправкой результатов в callback.

Пример:

bt.attach(bt.mode.BLE)
bt.scan.start(function(data)
      if (data.type == bt.frameType.EddystoneUID) then print(data.type, data.namespace, data.instance) end
      if (data.type == bt.frameType.EddystoneURL) then print(data.type, data.url) end
      if (data.type == bt.frameType.EddystoneTLM) then print(data.type, data.version, data.battery, data.temperature, data.advCount, data.timeSinceBoot) end
      if (data.type == bt.frameType.EddystoneUID) then print(data.type, data.ibeacon_major, data.ibeacon_minor, data.ibeacon_uuid) end
end)

bt.scan.stop()

Остановить режим сканирования.