Dowiedz się, jak rozpocząć rozwój i iterację sterownika Tulip Edge Driver
Wprowadzenie
- Czego się nauczysz
- Jak opracować swój pierwszy projekt sterownika krawędziowego
- Tworzenie projektu
- Aktualizowanie plików manifestu i indeksu
- Jak opracować swój pierwszy projekt sterownika krawędziowego
- Czego będziesz potrzebować (wymagania wstępne)
- Wykonanie wszystkich kroków w SDK Create
Pierwsze kroki
Po utworzeniu nowego sterownika Edge Driver za pomocą narzędzia create-edge-driver
, możesz rozpocząć wdrażanie własnego kodu sterownika!
Aktualizacja manifest.json
Najpierw musimy zdefiniować zdarzenia i funkcje implementowane przez nasz sterownik. Zdarzenia urządzenia mogą być używane jako wyzwalacze logiki w aplikacjach Tulip Apps. Na przykład można skonfigurować wyzwalacz aplikacji w następujący sposób:
"Gdy mój czujnik wywoła zdarzenie pomiaru, zapisz dane temperatury w zmiennej 'Shop Floor Temperature'".
Sterowniki mogą również implementować funkcje urządzenia, które mogą być wykonywane w odpowiedzi na wyzwalacze w aplikacji. Na przykład:
"Kiedy kliknę ten przycisk, wywołaj funkcję 'Toggle Light' na moim urządzeniu".
W tym przykładzie nasz sterownik nie będzie miał żadnych funkcji, ale wywoła zdarzenie o nazwie "data", gdy nasz czujnik wykona pomiar. Zaktualizuj sekcję funkcji w pliku src/manifest.json, pozostawiając ją pustą lub całkowicie usuwając:
json... "functions":``[],...
Następnie zaktualizuj sekcję zdarzeń, aby zdefiniować kształt zdarzenia "data". To zdarzenie będzie obiektem z dwiema zmiennymi właściwościami, "temperatura" i "wilgotność": json... "events": [ { "name": "data", "schema": { "type": "object", "properties": { "temperature": { "type": "float" }, "humidity": { "type": "float" } } } } ],...
Aktualizacja index.ts
Teraz napiszemy kod sterownika, który używa Edge Driver SDK do znalezienia i połączenia się z portem szeregowym, odczytuje przychodzące dane szeregowe, analizuje wiadomości JSON i wywołuje zdarzenie "data" za pomocą funkcji fireEvent(). Zastąp przykładowy kod w pliku src/index.ts nowym kodem:
``jsedgeDriverSdk.SerialPort.listAvailablePorts().then((ports) => { const esp32port = ports.find((port) => port.product_id == 33128); const serial = new edgeDriverSdk.SerialPort(esp32port.path, { baudRate: 115200, });
serial.onData((data) => { try { const decoder = new TextDecoder(); const stringData = decoder.decode(new Uint8Array(data)); const espData = JSON.parse(stringData.split("ESP: ")[1]); edgeDriverSdk.fireEvent("data", espData); } catch (error) { console.error(error); } });
serial.open(); }); ```To jest bardzo prosty przykład, który automatycznie próbuje znaleźć urządzenie przy użyciu identyfikatora produktu urządzenia USB, jeden raz podczas uruchamiania sterownika. Edge Driver SDK obsługuje również rejestrowanie sterowników, które mają być uruchamiane po wykryciu nowych urządzeń przez system, co może pomóc w tworzeniu bardziej niezawodnych sterowników produkcyjnych.
Tworzenie sterownika
Po zaktualizowaniu kodu sterownika i manifest.json, zbuduj sterownik ponownie:npm run build
Spowoduje to wygenerowanie skompilowanego i dołączonego pliku JavaScript, a także kopii zweryfikowanego manifestu w katalogu dist.