本文整理汇总了TypeScript中ionic-native.BLE.startNotification方法的典型用法代码示例。如果您正苦于以下问题:TypeScript BLE.startNotification方法的具体用法?TypeScript BLE.startNotification怎么用?TypeScript BLE.startNotification使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ionic-native.BLE
的用法示例。
在下文中一共展示了BLE.startNotification方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: connected
/* Record incoming data in storage */
connected(peripheral) {
/* Inform the peripheral of the current date */
this.sendDate(peripheral);
/* Subscription for the heart rate (BPM) */
this.HRSubscription = BLE.startNotification(peripheral.id, this.scanInfo.service, this.scanInfo.heartrate);
/* Subscription for the EKG data */
this.EKGSubscription = BLE.startNotification(peripheral.id, this.scanInfo.service, this.scanInfo.ekg);
/* Subscription for the bundle data */
this.HRBundleSubscription = BLE.startNotification(peripheral.id, this.scanInfo.service, this.scanInfo.heartratebundle);
/* Subscription for date verification */
this.dateCheckSubscription = BLE.startNotification(peripheral.id, this.scanInfo.service, this.scanInfo.datecheck);
/* Subscription for step count packages */
this.stepSubscription = BLE.startNotification(peripheral.id, this.scanInfo.service, this.scanInfo.steps);
/* Subscription for live step count */
this.liveStepSubscription = BLE.startNotification(peripheral.id, this.scanInfo.service, this.scanInfo.livesteps);
/* Subscribe to the BPM */
this.HRSubscription.subscribe(buffer => {
let data = new Uint8Array(buffer);
/* The bytes are in reverse order, so we bit shift them to form the date */
let date = this.calcDate(data[3],data[2],data[1],data[0]);
/* Record the last timestamp for data checking with peripheral */
this.lastDate = date;
console.log("Received a bpm package: " + date);
/* Store data (date * 1000 to account for milliseconds) */
this.storage.storeBPM(new Date(date * 1000),data[4]);
/* Republish the data for the home page */
this.events.publish('bpm',data[4]);
/* Post the data to the server */
//this.httpservice.makePostRequest(data[0],new Date(data[1] * 1000));
});
/* Subscribe to the EKG */
this.EKGSubscription.subscribe(buffer => {
let data = new Uint8Array(buffer);
/* Republish the data for the home page */
this.events.publish('ekg',data);
});
this.HRBundleSubscription.subscribe(buffer => {
let data = new Uint8Array(buffer);
/* BPMs are located every 5 indices */
let bpmArray = [data[4],data[9],data[14],data[19]];
/* Dates must be calculated in reverse order */
let dateArray = [
this.calcDate(data[3],data[2],data[1],data[0]),
this.calcDate(data[8],data[7],data[6],data[5]),
this.calcDate(data[13],data[12],data[11],data[10]),
this.calcDate(data[18],data[17],data[16],data[15])
];
//console.log("Received a group data package: " + dateArray[0]);
/* Push all data points to storage
(dates * 1000 for ms format ) */
for (let i=0; i < bpmArray.length; i++) {
this.storage.storeBPM(new Date(dateArray[i] * 1000),bpmArray[i]);
}
});
/* Periodically, the peripheral may request a comparison from the last date
received to the current date to check if all data has arrived */
this.dateCheckSubscription.subscribe(buffer => {
let data = new Uint8Array(buffer);
let curDate = this.calcDate(data[3],data[2],data[1],data[0]);
if (!this.lastDate)
return;
let uint8 = new Uint8Array(4);
let caughtUp = 0;
if (this.lastDate >= curDate)
caughtUp = 1;
/* Send back an array of the boolean result */
for (let i = 0; i < 4; i++) {
uint8[i] = caughtUp;
}
BLE.write(peripheral.id, this.scanInfo.service, this.scanInfo.datecheck, uint8.buffer).then(
succ => {console.log("wrote back: " + uint8);},
fail => {console.log("did not write back");}
);
});
/* Step subscription contains a date, a time offset, and a number of steps */
this.stepSubscription.subscribe(buffer => {
//.........这里部分代码省略.........