SDK 개발

Prev Next

Tulip Edge 드라이버 개발 및 반복 작업을 시작하는 방법 알아보기

소개

  1. 학습 내용
    1. 첫 번째 엣지 드라이버 프로젝트를 개발하는 방법
      1. 프로젝트 빌드하기
      2. 매니페스트 및 인덱스 파일 업데이트하기
  2. 필요한 것(사전 요구 사항)
    1. 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 디렉터리 내에 생성됩니다.![SDK](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Screenshot%202025-03-27%20at%2011.12.19%20AM.png){height="" width=""}