DeviceScript là gì? Những điều bạn cần biết về DeviceScript

DeviceScript tích hợp liền mạch IoT với TypeScript. Dưới đây là mọi điều bạn cần biết về DeviceScript.

Internet vạn vật

DeviceScript là một cải tiến tiên tiến từ Microsoft Research. Nó mở rộng khả năng của TypeScript  để phù hợp với các thiết bị Internet vạn vật (IoT) quy mô nhỏ có tài nguyên hạn chế.

Mục tiêu chính của DeviceScript là cho phép bạn viết code trong TypeScript và biên dịch nó thành mã byte tùy biến để triển khai trên những môi trường hạn chế tài nguyên.

Xuất console trong DeviceScript

Microsoft DeviceScript cung cấp console thân thiện người dùng. Nó hỗ trợ xuất thông báo và ghi lại dữ liệu cảm biến, đồng thời hoạt động như một công cụ tuyệt vời trong việc kiểm tra lỗi.

Bạn có sẵn một loạt các hàm để ghi thông báo ở nhiều cấp độ khác nhau:

console.debug("debug")
console.log("log")
console.warn("warn")
console.error("error")

Xuất console sẵn sàng hiện trong cửa sổ terminal DeviceScript. Nó có thể giúp cung cấp thông tin chi tiết đáng giá về việc chạy code và quá trình gỡ lỗi.

Hơn nữa, DeviceScript đơn giản hóa việc ghi dữ liệu cảm biến bằng cách cung cấp hàm console.data, tự động bổ sung timestamp vào dữ liệu được ghi lại.

Xem xét ví dụ sau:

const temperature = 20;
const humidity = 60;
console.data({ temperature, humidity });

Để truy cập dữ liệu đã ghi, bạn có thể điều hướng tới bảng DeviceScript - Data output trong Visual Studio Code hoặc tải nó từ menu trình xem.

Định dạng chuỗi mạnh mẽ

Khi dùng hàm console.log() trong DeviceScript, bạn có nhiều lựa chọn để định dạng chuỗi cho đầu ra nâng cao. Hãy xem xét ví dụ minh họa sau:

let x = 0;
let y = 4;
console.log("Greetings, world");
console.log("The value of X is", x, "while Y is", y);
console.log("X=", x, "Y=", y);
console.log(`X=${x} Y=${y}`);
console.log("X=" + x + " Y=" + y);

Trình biên dịch DeviceScript tự động chèn các khoảng trắng cho đầu ra dễ đọc hơn. Ví dụ thứ hai và 3 lần lượt sẽ cho Giá trị X là 7 còn giá trị Y là 12 và X=7 Y=12.

Khi viết vào các thanh ghi (register), bạn cũng có thể dùng phép nối và mẫu chữ. Hãy xem xét đoạn code sau:

const screen = new ds.CharacterScreen();
let x = 7;
screen.message.write("The value of X is " + x);
screen.message.write(`X is equal to ${x}`);

Dùng phép nối mặc chữ mẫu, bạn có thể dễ dàng xây dựng các chuỗi động để đáp ứng những phạm vi yêu cầu khác nhau.

Ngoài ra, DeviceScript cung cấp hàm ds.format() cho định dạng chuỗi nâng cao. Bạn có thể dùng hàm này cùng với console.log() hoặc khi cấu hình thanh ghi chuỗi.

Chỉ định placeholder cho các đối số bằng định dạng {0}, {1}, {2}… Bạn cũng có thể chỉ định độ chính xác bằng cách bổ sung thêm số thứ hai.

Quan sát ví dụ sau:

const screen = new ds.CharacterScreen();
let x = 7;
let y = 12;
console.log(ds.format("X is {0} and Y is {1}", x, y));
console.log(ds.format("X = {04}", x));
screen.message.write(ds.format("X is approximately {0}", x));

Hãy nhớ rằng việc chỉ định độ chính xác bằng chữ số thứ hai có thể không mang lại kết quả hoàn hảo trong mọi tình huống.

Client: Cho phép tương tác với cảm biến và bộ truyền động

Hệ sinh thái DeviceScript trừu tượng hóa sự tương tác với các cảm biến, bộ truyền động và thành phần phần cứng khác qua các dịch vụ Jacdac.

Framework này xem cảm biến như server, còn script kết nối client với những server này để tạo điều kiện tương tác. Lấy ví dụ điều khiển hệ thống sưởi ấm trong nhà. Nó bao gồm một rơle điều chỉnh hoạt động của lò, cảm biến nhiệt độ và bộ mã hóa vòng quay để điều chỉnh nhiệt độ mong muốn. Trong DeviceScript, bạn xác định máy khách (client), còn được gọi là vai trò, cho mỗi dịch vụ được yêu cầu.

Hãy đọc đoạn code sau:

import { Temperature, Relay } from "@devicescript/core";
const thermometer = new Temperature();
const thermometer2 = new Temperature();
const relay = new Relay();

Bằng cách khởi tạo các máy khách dịch vụ cần thiết, chẳng hạn như thermometer, thermometer2, và relay, bạn thiết lập giao tiếp liền mạch với các máy chủ tương ứng.

Server phần cứng DeviceScript

Để tương tác với thành phần phần cứng bất kỳ trong DeviceScript, bạn triển khai các client dịch vụ. Tuy nhiên, để lập trình hiệu quả những thành phần hardware này, bạn bắt buộc phải khởi tạo các máy chủ dịch vụ trên phần cứng bên dưới.

DeviceScript cung cấp một phạm vi mở rộng các máy chủ trong mô đun @devicescript/servers, nhờ đó, quy trình này được hợp lý hóa.

Ví dụ, hàm startButton cho phép bạn triển khai một server nút bấm trên một pin cụ thể và lấy client tương ứng. Quan sát ví dụ sau:

import { gpio } from "@devicescript/core";
import { startButton } from "@devicescript/servers";
const buttonA = startButton({ pin: gpio(2),});

Bằng cách đưa đoạn code này vào script, bạn có khả năng tương tác với pin 2 (nhận dạng dành riêng cho phần cứng) qua client buttonA. Sau đó, bạn có thể đăng ký những sự kiện như nhấn nút bấm và chạy tác vụ cụ thể trong ứng dụng IoT.

DeviceScript cho phép bạn dùng TypeScript trên những thiết bị IoT nhỏ, tối ưu hóa code cho môi trường hạn chế. DeviceScript mang tới một môi trường toàn diện để lập trình. Nó là một công cụ đáng giá trong việc cung cấp những giải pháp IoT hiệu quả và an toàn.

Thứ Tư, 28/06/2023 16:34
51 👨 111
0 Bình luận
Sắp xếp theo