Обновлённые объекты платформы
Ряд традиционных объектов платформы изменился в WS1102. Ниже кратко описаны изменения и дополнения.
Объект beep.
- beep.frequency - это свойство, заменившее beep.divider, задаёт используемую частоту от 30Hz до 20KHz
- beep.play - работает точно так же, как в прежних реализациях, но частота теперь задаётся свойством beep.frequency
Объект bt.
Все свойства и методы объекта bt. работают так же, как в прежних реализациях, кроме bt.mac: теперь это свойство только для чтения.
Кроме того, если включено wln.autoconnect, вызывать wln.boot для инициализации оборудования Bluetooth больше не нужно.
Единственное дополнение - метод bt.disconnect, с помощью которого можно принудительно разорвать соединение Bluetooth.
Объект fd.
Все свойства и методы объекта fd. работают так же, как в прежних реализациях. Однако размер физического сектора теперь составляет 528 байт вместо прежних 264, а общий объём хранилища вырос до 4MB (4,096KB).
Важно помнить, что все файлы, хранящиеся в WS1102, должны быть выровнены по границе 4KB. Это значит, что при использовании таких методов, как fd.copyfirmware, при добавлении файлов нужно рассчитывать начало следующего блока в 4KB. Например, если APP0 занимает 126KB, APP1 должно начинаться с блока 128KB.
Объект ser.
Все свойства и методы объекта ser. работают так же, как в прежних реализациях. Однако теперь поддерживаются следующие скорости (бод):
- 110
- 300
- 1,200
- 2,400
- 4,800
- 9,600
- 19,200
- 38,400
- 57,600
- 115,200
- 230,400
- 460,800
- 921,600
Если поддерживаемая скорость не указана, используется скорость по умолчанию - 9,600.
Объект sys.
В WS1102 у объекта sys. появились два новых метода, три новых свойства и два новых обработчика событий.
Метод sys.reboottoapp однократно перезагружает систему в указанный скомпилированный двоичный файл приложения Tibbo BASIC/C.
Метод sys.sleep "пробуждает" устройство из состояния пониженного энергопотребления в заданные дату и время, которые передаются тремя параметрами: числом дней, минут и секунд, прошедших с 1-JAN-2000 (см. объект rtc.). При неправильной настройке устройство может не проснуться в нужное время. Учтите, что выход из состояния пониженного энергопотребления не "возобновляет" работу, а выполняет полный сброс системы.
Свойство sys.debugmode определяет, какой интерфейс устройство использует для отладки - последовательный или беспроводной. Оно принимает один параметр - перечисление pl_sys_debug_mode. Если установить для свойства значение PL_SYS_DBG_NET, не включив wln.autoconnect, отладка станет невозможной. В этом случае, скорее всего, потребуется сбросить настройки или включить wln.autoconnect через консоль BLE загрузчика Monitor/Loader (M/L) или через приложение-компаньон.
Свойство sys.defaultapp задаёт двоичный файл приложения, который устройство загружает по умолчанию при включении.
Свойство sys.timercountmse, доступное только для чтения, возвращает время (в миллисекундах), прошедшее с момента включения устройства.
Благодаря новой, улучшенной реализации DHCP в WS1102 (см. ниже), обработчики событий on_sys_dhcp_ok и on_sys_dhcp_failure заменяют различные функции обратного вызова, которые использовались в библиотеке DHCP. Новая реализация DHCP - предпочтительный способ автоматического получения IP-адреса в WS1102, но библиотека DHCP остаётся совместимой с платформой.
Объект wln.
WS1102 - первый сервер устройств Tibbo со встроенными беспроводными возможностями, поэтому объект wln. закономерно претерпел существенные изменения. Функции многих свойств и методов остались прежними, но их применение теперь зависит от ситуации.
В WS1102 у объекта wln. пять новых свойств. Самое важное из них - wln.autoconnect, которое значительно упрощает настройку, управление и реализацию подключения устройств по Wi-Fi. Это свойство считывается при загрузке; если оно включено, модуль автоматически пытается подключиться к заранее настроенной сети Wi-Fi, поддерживает соединение и восстанавливает его при разрыве.
Для отладки по беспроводной сети необходимо, чтобы wln.autoconnect было включено.
Свойства wln.autoconnectssid и wln.autoconnectpassword задают SSID и пароль нужной сети Wi-Fi соответственно. Чтобы изменения любого из этих свойств вступили в силу, устройство необходимо перезагрузить.
В прежних устройствах Tibbo клиент DHCP реализовывался через библиотеку DHCP. WS1102 позволяет передать операции DHCP внутреннему процессу TiOS, что существенно ускоряет получение IP-адреса. Свойство wln.dhcp включает этот "внутренний DHCP", заменяющий функции библиотеки.
Когда wln.dhcp включено, модуль запускает процесс DHCP до старта вашего приложения, помогая устройству получить действительный IP-адрес и сэкономить ещё несколько миллисекунд ожидания. Благодаря этому ваше приложение будет готово к сетевым задачам ещё раньше!
Если wln.dhcp ещё не включено, оно включится автоматически при вызове wln.autodhcp. Этот метод по-прежнему требует обработки обратных вызовов DHCP и в основном обратно совместим с библиотекой, но точнее определяет параметры. Если wln.autoconnect отключено, wln.dhcp необходимо вызвать до wln.boot, чтобы включить функциональность DHCP в традиционном режиме работы Wi-Fi.
Можно по-прежнему использовать с WS1102 и библиотеку DHCP, но тогда wln.dhcp и wln.autodhcp должны быть отключены.
В WS1102 изменились два метода и два свойства объекта wln. по сравнению с прежними реализациями.
Методы wln.networkstart и wln.networkstop недоступны, если включено wln.autoconnect. Даже когда wln.autoconnect отключено, wln.networkstart, который заодно включает DHCP, доступен только после вызова wln.boot.
Свойство wln.domain теперь является настройкой, и для вступления изменений в силу требуется перезагрузка. Список значений расширен и охватывает большинство крупных регионов и стран.
Свойство wln.mac теперь только для чтения - оно лишь возвращает MAC-адрес устройства. MAC-адрес теперь можно изменить только в Device Explorer, как и у Ethernet-устройства, а значит, потребуется отладка по Wi-Fi.
Свойства и методы без изменений
Эти свойства и методы объекта wln. работают в основном так же, как в прежних реализациях:
- wln.associationstate
- wln.enabled
- wln.gatewayip
- wln.getmoduletype - теперь сразу возвращает тип модуля
- wln.ip
- wln.netmask
- wln.rssi
- wln.settxpower
Свойства и методы, недоступные или ненужные при wln.autoconnect
Эти свойства и методы объекта wln. недоступны или не нужны, если включено wln.autoconnect: при попытке вызвать их возвращается REJECTED. Если wln.autoconnect отключено, эти свойства и методы работают точно так же, как в прежних реализациях.
- wln.activescan
- wln.associate
- wln.band
- wln.boot
- wln.disable
- wln.disassociate
- wln.scan
- wln.scanfilter
- wln.scanresultbssid
- wln.scanresultbssmode
- wln.scanresultchannel
- wln.scanresultrssi
- wln.scanresultssid
- wln.setwep
- wln.setwpa
- wln.task
Недоступные свойства и методы
Эти свойства и методы объекта wln. недоступны в WS1102: