Tulip Edge 드라이버 개발 및 반복 작업을 시작하는 방법 알아보기
소개
- 학습 내용
- 첫 번째 엣지 드라이버 프로젝트를 개발하는 방법
- 프로젝트 빌드하기
- 매니페스트 및 인덱스 파일 업데이트하기
- 첫 번째 엣지 드라이버 프로젝트를 개발하는 방법
- 필요한 것(사전 요구 사항)
- SDK 생성의 모든 단계를 따랐습니다.
시작하기
create-edge-driver
툴로 새 엣지 드라이버를 생성했다면, 이제 드라이버 코드를 구현할 준비가 된 것입니다!
매니페스트.json 업데이트
먼저 드라이버가 구현하는 이벤트와 함수를 정의해야 합니다. 디바이스 이벤트는 Tulip 앱에서 로직의 트리거로 사용할 수 있습니다. 예를 들어 다음과 같이 앱 트리거를 설정할 수 있습니다:
"내 센서에서 측정 이벤트가 발생하면 온도 데이터를 '작업 현장 온도' 변수에 저장하세요."와 같이 설정할 수 있습니다.
드라이버는 앱 내의 트리거에 대한 응답으로 실행할 수 있는 디바이스 기능을 구현할 수도 있습니다. 예를 들어
"내가 이 버튼을 클릭하면 내 디바이스에서 '토글 라이트' 기능을 호출하세요."
이 예제에서는 드라이버에 함수가 없지만 센서가 측정을 수행할 때 '데이터'라는 이벤트를 실행합니다. src/manifest.json 파일의 함수 섹션을 비워 두거나 완전히 제거하여 업데이트하세요:
json... "functions":``[],...
그런 다음 이벤트 섹션을 업데이트하여 "데이터" 이벤트의 모양을 정의합니다. 이 이벤트는 "온도"와 "습도"라는 두 개의 실수 속성을 가진 객체가 됩니다:json... "events": [ { "name": "데이터", "스키마": { "type": "object", "properties": { "temperature": { "type": "float" }, "humidity": { "type": "float" } } } } ],...
index.ts 업데이트
이제 엣지 드라이버 SDK를 사용하여 직렬 포트를 찾아 연결하고, 들어오는 직렬 데이터를 읽고, JSON 메시지를 파싱하고, fireEvent()를 사용하여 "데이터" 이벤트를 발생시키는 드라이버 코드를 작성하겠습니다. src/index.ts 파일의 예제 코드를 이 새 코드로 바꾸세요:
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();});```이것은 드라이버가 시작될 때 한 번만 USB 장치의 제품 ID를 사용하여 자동으로 장치를 찾는 매우 간단한 예제입니다. 또한 엣지 드라이버 SDK는 시스템에서 새 디바이스가 감지될 때 시작될 드라이버를 등록하는 기능도 지원하므로 보다 강력한 프로덕션 드라이버를 만드는 데 도움이 될 수 있습니다.
#### 드라이버 빌드
드라이버 코드와 매니페스트.json을 업데이트한 후 드라이버를 다시 빌드하세요`.`
그러면 컴파일되고 번들링된 JavaScript 파일과 유효성이 검사된 매니페스트 사본이 dist 디렉터리 내에 생성됩니다.{height="" width=""}