Skip to content
This repository has been archived by the owner on Apr 23, 2021. It is now read-only.

Commit

Permalink
get sensor data
Browse files Browse the repository at this point in the history
  • Loading branch information
mangini committed Jun 23, 2012
1 parent 491b9a7 commit c2854c0
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 22 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.DS_Store
*.swp
7 changes: 5 additions & 2 deletions nxt-app/js/nxt.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const SENSOR_REFRESH_INTERVAL=200;
var btnForward=document.querySelector(".forward");
var logArea=document.querySelector(".log");
var statusLine=document.querySelector("#status");
var readSound=document.querySelector(".readSound");
var btnReadSound=document.querySelector(".readSound");

var logObj=function(obj) {
console.log(obj);
Expand Down Expand Up @@ -98,7 +98,10 @@ const SENSOR_REFRESH_INTERVAL=200;
logSuccess("Device found (connectionId="+cInfo.connectionId+")");
flipState(false);
statusLine.textContent="Connected";
//serial_lib.startListening(onRead);
log("started listener");
serial_lib.startListening(function(data) {
log("reading "+data);
});
}

var writeSerial=function(bytes) {
Expand Down
56 changes: 36 additions & 20 deletions nxt-app/js/serial.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ var serial_lib=(function() {
var connectionInfo;
var readListener;
var dataRead;
var bytesToRead;

var logObj=function(obj) {
console.log(obj);
Expand All @@ -32,39 +33,57 @@ var serial_lib=(function() {

var startListening=function(callback) {
if (!connectionInfo || !connectionInfo.connectionId) {
throw new "You must call openSerial first!";
throw "You must call openSerial first!";
}
readListener=callback;
dataRead='';
onCharRead();
dataRead=[];
flush(onRead);
}

var onCharRead=function(readInfo) {
var flush=function(callback) {
chrome.experimental.serial.flush(connectionInfo.connectionId, callback);
}

var printArrayBufferView=function(abv) {
var str="";
for (var i=0; i<abv.length; i++) {
str+=abv[i];
}
return str;
}
var onRead=function(readInfo) {
if (!readListener || !connectionInfo) {
return;
}
if (readInfo && readInfo.bytesRead>0 && readInfo.data) {
var str=ab2str(readInfo.data);
if (str[str.length-1]==='\n') {
dataRead+=str.substring(0, str.length-1);
onRead(dataRead);
dataRead="";
} else {
dataRead+=str;
var abv=new Uint8Array(readInfo.data);

for (var i=0; i<abv.length; i++) {
if (dataRead.length===0) {
bytesToRead=abv[0];
} else if (dataRead.length===1) {
bytesToRead+=abv[0]>>8;
} else {
bytesToRead--;
}
dataRead.push(abv[0]);
}

if (bytesToRead===0 && dataRead.length>2) {
readListener(dataRead);
dataRead=[];
bytesToRead=0;
return;
}
}

setTimeout( function() { chrome.experimental.serial.read(connectionInfo.connectionId, onCharRead)), 200);
chrome.experimental.serial.read(connectionInfo.connectionId, onRead);
}

var getPorts=function(callback) {
chrome.experimental.serial.getPorts(callback);
}

var flush=function() {
chrome.experimental.serial.flush();
}

var openSerial=function(serialPort, callback) {
chrome.experimental.serial.open(serialPort, function(cInfo) {
onOpen(cInfo, callback)
Expand All @@ -84,7 +103,6 @@ var serial_lib=(function() {

var writeBytesSerial=function(bytes) {
var abv=new Uint8Array(bytes);
console.log("writing uint8array "+abv);
chrome.experimental.serial.write(connectionInfo.connectionId, abv.buffer, onWrite);
}

Expand All @@ -95,9 +113,6 @@ console.log("writing uint8array "+abv);
var onWrite=function(obj) {
}

var onRead=function(readInfo) {
if (readListener) readListener(readInfo);
};

/* the arraybuffer is interpreted as an array of UTF-8 (1-byte Unicode chars) */
var ab2str=function(buf) {
Expand Down Expand Up @@ -145,6 +160,7 @@ console.log("writing uint8array "+abv);
"startListening": startListening,
"writeBytesSerial": writeBytesSerial,
"writeSerial": writeSerial,
"flush": flush,
"closeSerial": closeSerial
}
})();
Expand Down

0 comments on commit c2854c0

Please sign in to comment.