O aprimoramento do TypeScript da Microsoft pode ajudá-lo a desenvolver sistemas complexos alimentados pela Internet das Coisas.

DeviceScript é uma inovação de ponta da Microsoft Research. Ele estende os recursos do TypeScript para acomodar dispositivos de Internet das Coisas (IoT) de pequena escala com recursos limitados.

Seu principal objetivo é permitir que você escreva código em TypeScript e o compile em bytecode personalizado, otimizado para implantação em ambientes com recursos limitados.

Saída do console em DeviceScript

Microsoft DeviceScript oferece um console amigável. Ele suporta a saída de mensagens e o registro de dados do sensor, mas também serve como um ferramenta valiosa para verificação de erros.

Uma variedade de funções está à sua disposição para registrar mensagens com diferentes níveis de registro:

console.depurar("depurar")
console.registro("registro")
console.avisar("avisar")
console.erro("erro")

A saída do console é facilmente visível na janela do terminal DeviceScript. Ele pode ajudar a fornecer informações valiosas sobre a execução do seu código e auxiliar no processo de depuração.

instagram viewer

Além disso, o DeviceScript simplifica o registro de dados do sensor, fornecendo o console.data função, que anexa automaticamente um registro de data e hora aos dados registrados.

Considere o seguinte exemplo:

const temperatura = 20;
const umidade = 60;
console.data({ temperatura, umidade });

Para acessar os dados registrados, você pode navegar até o DeviceScript - saída de dados painel no Visual Studio Code ou baixe-o no menu de exibição.

Formatação de String Poderosa

Ao usar o console.log() função em DeviceScript, você tem muitas opções para formatar strings para saída aprimorada. Considere os seguintes exemplos ilustrativos:

deixar x = 0;
deixar y = 4;
console.registro("Saudações, mundo");
console.registro("O valor de X é",x, "enquanto Y é", y);
console.registro("X=",x, "Y=", y);
console.registro(`X=${x} S=${a}`);
console.registro("X=" + x + "Y=" + y);

O compilador DeviceScript insere espaços automaticamente, resultando em uma saída mais legível. Por exemplo, o segundo e o terceiro exemplos produzirão O valor de X é 7 enquanto Y é 12 e X=7 Y=12, respectivamente.

Ao gravar em registradores, você também pode usar concatenação e literais de modelo. Considere o seguinte trecho de código:

const tela = novo ds. CharacterScreen();
deixar x = 7;
tela.mensagem.escrever("O valor de X é" + x);
tela.mensagem.escrever(`X é igual a ${x}`);

Usando concatenação ou literais de modelo, você pode construir strings dinâmicas sem esforço para atender a uma ampla variedade de requisitos.

Além disso, o DeviceScript oferece a ds.format() função para formatação de string avançada. Você pode usar esta função em conjunto com console.log() ou ao configurar registradores de string.

Especifique espaços reservados para argumentos usando o formato {0}, {1}, {2}, e assim por diante. Você também pode especificar a precisão acrescentando um segundo dígito.

Observe o seguinte exemplo:

const tela = novo ds. CharacterScreen();
deixar x = 7;
deixar y = 12;
console.log (ds.format("X é {0} e Y é {1}", x, y));
console.log (ds.format("X = {04}", x));
screen.message.write (ds.format("X é aproximadamente {0}", x));

Lembre-se de que especificar a precisão com um segundo dígito pode não produzir resultados perfeitos em todos os cenários.

Clientes: permitindo a interação com sensores e atuadores

O ecossistema DeviceScript abstrai a interação com sensores, atuadores e outros componentes de hardware por meio de serviços Jacdac.

Essa estrutura trata os sensores como servidores, enquanto seus scripts conectam clientes a esses servidores para facilitar a interação. Para ilustrar esse conceito, considere o cenário de um controlador de sistema de aquecimento residencial.

O sistema de aquecimento é composto por um relé que regula o funcionamento do forno, um sensor de temperatura e um codificador rotativo para ajustar a temperatura desejada. No DeviceScript, você define clientes, também conhecidos como funções, para cada serviço necessário.

Dê uma olhada no trecho de código a seguir:

importar { Temperatura, Relé } de"@devicescript/núcleo";
const termômetro = novo Temperatura();
const termômetro2 = novo Temperatura();
const relé = novo Retransmissão();

Ao instanciar os clientes de serviço necessários, como termômetro, termômetro2, e retransmissão, você estabelece uma comunicação contínua com os servidores correspondentes.

Servidores de Hardware DeviceScript

Para interagir com qualquer componente de hardware no DeviceScript, você emprega clientes de serviço. No entanto, para uma programação eficaz desses componentes de hardware, é imperativo inicializar os servidores de serviço no hardware subjacente.

DeviceScript oferece uma extensa gama de servidores dentro do @devicescript/servidores módulo, agilizando assim este processo.

Por exemplo, o botão de início A função permite implantar um servidor de botão em um pino específico e obter o cliente correspondente. Observe o seguinte exemplo:

importar { gpio } de"@devicescript/núcleo";
importar { botão de início } de"@devicescript/servidores";
const botãoA = startButton({ alfinete: gpio(2),});

Ao incorporar esse trecho de código em seu script, você ganha a capacidade de interagir com o pino 2 (o identificador específico do hardware) por meio do botãoA cliente. Você pode então se inscrever em eventos como pressionamentos de botão e executar ações específicas em seu aplicativo IoT.

Capacitando o desenvolvimento de IoT com DeviceScript

O DeviceScript permite que você aproveite o TypeScript para pequenos dispositivos IoT, otimizando o código para ambientes restritos. Sua saída de console simplifica o registro e a visualização de dados. Ao abstrair a interação do hardware por meio dos serviços Jacdec, agiliza a comunicação com sensores e atuadores.

Integrado ao Visual Studio Code, o DeviceScript oferece um ambiente abrangente para desenvolvimento, tornando-se uma ferramenta valiosa para soluções de IoT eficientes e seguras. Com DeviceScript e Visual Studio Code, você pode criar com confiança soluções IoT que não são apenas eficientes, mas também mantêm um alto nível de segurança durante todo o processo de desenvolvimento.