Написание кода

Ниже приведён весь ваш первый проект целиком. Его можно просто скопировать в файл main.tbs.

Внимания потребует только строка, начинающаяся с net.ip. Нужно назначить устройству подходящий IP-адрес, «совместимый» с вашим сегментом сети. На практике это означает, что первые три числа IP-адреса совпадают с IP-адресом вашего ПК, а четвёртое отличается. Например, если IP-адрес вашего ПК 192.168.1.40, можно попробовать задать устройству Tibbo адрес 192.168.1.41. Конечно, сначала убедитесь, что этот адрес не занят: попробуйте выполнить ping - если ответа нет, адрес, скорее всего, свободен.

Возможно, вы задумались о DHCP: разве это не безопасный и удобный способ получить действительный и свободный IP-адрес? Разве не обычное, если не повсеместное, дело - когда сетевое устройство получает IP-адрес при загрузке?

Устройства Tibbo устроены иначе: они загружаются с IP-адресом по умолчанию 1.0.0.1. Ваша программа может напрямую настроить этот адрес через свойство net.ip. Если приложению нужен DHCP, Tibbo предлагает библиотеку DHCP, которую легко встроить в проекты.

Обратите внимание: правильный IP-адрес не обязателен для работы перекрёстной отладки. Даже если оставить адрес по умолчанию 1.0.0.1, TIDE получит доступ к вашему устройству Tibbo. Однако при использовании симулятора TiOS нужно выбрать подходящий IP-адрес, не зависящий от IP-адреса ПК-хоста.

include "global.tbh"
sub on_sys_init()
   net.ip="192.168.1.222" '<—- set the correct IP
   sock.rxbuffrq(1)
   sock.txbuffrq(1)
   sys.buffalloc
   sock.protocol=PL_SOCK_PROTOCOL_TCP
   sock.localportlist="1000"
   sock.inconmode=PL_SOCK_INCONMODE_ANY_IP_ANY_PORT
   sock.reconmode=PL_SOCK_RECONMODE_3
end sub
sub on_sock_data_arrival()
   dim s as string
   s=sock.getdata(sock.txfree)
   sock.setdata(s)
   sock.send
end sub
sub on_sock_event(newstate as enum pl_sock_state,newstatesimple as enum pl_sock_state_simple)
   if newstatesimple=PL_SSTS_EST then
      sock.setdata("HELLO WORLD!")
      sock.send
   end if
end sub

Обратите внимание, какой маленькой получилась ваша первая программа на Tibbo BASIC! В этом сила Tibbo BASIC (и C): сложные задачи решаются в считаные строки кода.

Несколько замечаний к этому коду:

  1. Обработчик события on_sys_init подготавливает один прослушивающий TCP-сокет.
  2. Обработчик события on_sock_data_arrival берёт всё, что принял TCP-сокет, и отправляет обратно.
  3. Обработчик события on_sock_event для эхо-приложения не нужен; его добавили, потому что хотелось где-нибудь увидеть хрестоматийное «HELLO WORLD!». Эта строка отправляется при каждом установлении TCP-соединения.
Исходный материал Tibbo обновлён 12 сентября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке