مستندات فلووا

نصب و انتخاب Target

نصب FlovaSDK برای Arduino، PlatformIO، Linux یا Device قابل انتقال C++11.

FlovaSDK برای ESP32 و ESP8266 به‌صورت Library برای Arduino و PlatformIO منتشر می‌شود. برنامه‌های Linux از Package مربوط به CMake استفاده می‌کنند. یک Device قابل انتقال می‌تواند Core تعبیه‌شده را با Serviceهای Platform خودش به کار بگیرد.

ابتدا مدل Integration را انتخاب کنید

چیزی که داریداز اینجا شروع کنیدمالکیت برنامه
Board بدون برنامهٔ DeviceFlovaUniversalEsp32 یا FlovaUniversalEsp8266Template و Dashboard محصول
برنامهٔ موجود ArduinoFlovaEsp32 یا FlovaEsp8266Wi-Fi، GPIO، Sensor، Provisioning و Main Loop
Raspberry Pi یا Host لینوکسیFlovaLinuxProcess، Event Loop، Service Supervisor و Hardware
Board یا Gateway دیگر با C++11flova::DeviceLink، Storage، Clock، Logger و اتصال Board

برای یک Device آمادهٔ ESP32 از شروع سریع شروع کنید. این صفحه برای انتخاب Target، ساخت Project تازه و شناخت مرز مالکیت هر مدل است.

Arduino IDE و PlatformIO

این دو مسیر در یک مجموعهٔ تب قرار دارند تا انتخاب ابزار و انتخاب Board از هم جدا نشوند. تب پیش‌فرض Arduino IDE است.

ESP32 و ESP8266

۱. Tools > Board > Boards Manager را باز کنید. ۲. Package مربوط به esp32 از Espressif Systems را نصب کنید. ۳. از Tools > Manage Libraries، Library با نام FlovaSDK را نصب کنید. ۴. Board و USB Serial Port را از Tools > Board و Tools > Port انتخاب کنید. ۵. نقطهٔ ورود عمومی را وارد کنید:

#include <FlovaSDK.h>

این Header Facade مربوط به ESP32 را در اختیار می‌گذارد. برای یک Device کامل از FlovaUniversalEsp32 و برای برنامهٔ موجود از FlovaEsp32 استفاده کنید.

Universal Firmware

وقتی می‌خواهید Flova کل Composition مربوط به Device را مدیریت کند، از Universal Firmware استفاده کنید:

#include <Arduino.h>
#include <FlovaSDK.h>

FlovaUniversalEsp32 device;

void setup() {
  Serial.begin(115200);
  device.begin();
}

void loop() {
  device.run();
}

برای ESP8266 از FlovaUniversalEsp8266 استفاده کنید. Universal Firmware Composition برد، مسیر Provisioning، Hardware Mapping، سیاست OTA و سیاست Restart مربوط به Target را فراهم می‌کند و برای یک محصول استاندارد Wi-Fi کوتاه‌ترین مسیر است.

Linux و Raspberry Pi

Dependencyهای بومی را از ریشهٔ Repository مربوط به Firmware نصب و Package را Build کنید:

sudo apt install cmake libssl-dev
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build build
sudo cmake --install build

Package نصب‌شده را به برنامه Link کنید:

find_package(FlovaLinux CONFIG REQUIRED)
target_link_libraries(my_device PRIVATE Flova::Linux)

سپس از همان مدل Typeدار Datastream استفاده کنید:

#include <FlovaLinux.h>

FlovaLinux device;
auto relay = FLOVA_DATASTREAM(device, bool, "relay");

int main() {
  if (!device.begin()) return 1;
  for (;;) device.run();
}

run() یک گام محدود انجام می‌دهد. آن را در Poll یا Event Loop برنامه قرار دهید و مالکیت Process را به SDK ندهید.

Boardهای قابل انتقال

Core قابل انتقال در Include عمومی خود به Arduino، ESP، Wi-Fi، File System، Exception یا RTTI نیاز ندارد. برای Port سفارشی، این Serviceها را فراهم کنید:

flova::Link، flova::Storage، flova::Clock و flova::Logger؛ سپس flova::Device را بسازید.

اگر Target به Network سفارشی، Gateway، Ethernet Chip یا Service Supervisor نیاز دارد، Firmware پیشرفته را بخوانید.

بررسی نصب

پس از نصب و پیش از Debug منطق برنامه، هماهنگ بودن Board Package با Board فیزیکی، تغییر کردن Serial Port هنگام جدا و وصل کردن Board، Compile شدن یک Sketch خالی با #include <FlovaSDK.h>، یکسان بودن Class برنامه با Target انتخاب‌شده و Publish بودن Template Device را بررسی کنید.

اگر Library پیدا می‌شود اما Device وصل نمی‌شود، Wi-Fi یا Ethernet، زمان و TLS، وضعیت Provisioning، Session و Status Device را جداگانه بررسی کنید.