faneGin
文章15
标签11
分类4
micro:bit的读写特性

micro:bit的读写特性

在上一篇中我们主要了了解micro:bit的的服务特性,今天我们主要用micro:bit的几个特性来读取以及改写

在上篇我们已经将我们所需的UUID写入,接下来只要对代码进行小部分修改以及增添就行

首先我们要添加读写按钮 接着再添加读取型号函数,之后添加改变led的写函数。

读取micro:bit开发板的名称

function readModelNumber()

​ {

​ console.log(“readModelNumber”);

​ if (!connected)

​ {

​ alert(“Error: Discover and connect to a device before using this function”);

​ return

​ }

​ if (!services_discovered)

​ {

​ alert(“Error: Service discovery has not yet completed”);

​ return

​ }

​ if (!has_device_information_service)

​ {

​ alert(“Error: The connected device does not contain the device information service”);

​ return

​ }

​ if (!has_model_name_string)

​ {

​ alert(“Error: The connected device does not contain the model name string”);

​ return;

​ }

​ model_number_string.readValue()

​ .then(value => {

​ data = new Uint8Array(value.buffer);

​ model_number_string = new TextDecoder(“utf-8”).decode(data);

​ console.log(model_number_string);

​ document.getElementById(“model_number”).innerHTML =

​ model_number_string;

​ })

​ .catch(error => {

​ console.log(‘Error: ‘ + error);

​ alert(‘Error: ‘ + error);

​ return;

​ });

​ }

控制LED灯的亮灭

function randomLEDs()

​ {

​ console.log(“randomLEDs”);

​ if (!connected)

​ {

​ alert(“Error: Discover and connect to a device before using this function”);

​ return

​ }

​ if (!services_discovered)

​ {

​ alert(“Error: Service discovery has not yet completed”);

​ return

​ }

​ if (!has_led_service)

​ {

​ alert(“Error: The connected device does not contain the LED service”);

​ return

​ }

​ if (!has_led_matrix_state)

​ {

​ alert(“Error: The connected device does not contain the LED matrix state characteristic”);

​ return;

​ }

​ var led_array = [0, 0, 0, 0, 0];

​ led_array[0] = Math.floor(Math.random() * 32);

​ led_array[1] = 1;

​ led_array[2] = 2;

​ led_array[3] = 3;

​ led_array[4] = 4;

​ var led_matrix_data = new Uint8Array(led_array);

​ led_matrix_state.writeValue(led_matrix_data.buffer)

​ .then(_ => {

​ console.log(‘LED matrix state changed’);

​ })

​ .catch(error =>{

​ console.log(‘Error ‘+ error);

​ alert(‘Error: ‘ + error); return;

​ });

​ }

填加控制小灯和读取开发板名称的按钮

Reading and Writing

Write Charateristic - Randomise Lights


Read Charateristic - Model number

效果如下图:

当我们点击Read Model Number执行读取型号函数在下方显示型号

当我们点击Randomise LEDs执行改变led函数,板子上led灯发生改变