نصب و انتخاب Target
نصب FlovaSDK برای Arduino، PlatformIO، Linux یا Device قابل انتقال C++11.
FlovaSDK برای ESP32 و ESP8266 بهصورت Library برای Arduino و PlatformIO منتشر میشود. برنامههای Linux از Package مربوط به CMake استفاده میکنند. یک Device قابل انتقال میتواند Core تعبیهشده را با Serviceهای Platform خودش به کار بگیرد.
ابتدا مدل Integration را انتخاب کنید
| چیزی که دارید | از اینجا شروع کنید | مالکیت برنامه |
|---|---|---|
| Board بدون برنامهٔ Device | FlovaUniversalEsp32 یا FlovaUniversalEsp8266 | Template و Dashboard محصول |
| برنامهٔ موجود Arduino | FlovaEsp32 یا FlovaEsp8266 | Wi-Fi، GPIO، Sensor، Provisioning و Main Loop |
| Raspberry Pi یا Host لینوکسی | FlovaLinux | Process، Event Loop، Service Supervisor و Hardware |
| Board یا Gateway دیگر با C++11 | flova::Device | Link، 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 buildPackage نصبشده را به برنامه 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 را جداگانه بررسی کنید.