Ai
1 Star 1 Fork 0

litial/scratch_serial_modules

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
server.js 3.07 KB
一键复制 编辑 原始数据 按行查看 历史
litial 提交于 2021-12-05 07:35 +08:00 . add server.js and update
var SerialPort = require('SerialPort');
var url = require('url')
var serialPort = new SerialPort("COM3", {
baudRate: 115200
});
serialPort.on('data', function(data) {
console.log('data rcv:' + data)
})
function write2Serial(data){
serialPort.write(data);
}
function decodeMsg(reqUrl)
{
console.log('url:' + reqUrl)
//var buff = [0xFE,0x05,0x93,0xCF,0x7D,0x5A,0x00,0xFF];
var buff = ["A".charCodeAt(),
"T".charCodeAt(),
"+".charCodeAt(),
"C".charCodeAt(),
"O".charCodeAt(),
"N".charCodeAt(),
"T".charCodeAt(),
"R".charCodeAt(),
"O".charCodeAt(),
"L".charCodeAt(),
"=".charCodeAt(),
0,
"\r".charCodeAt(),
"\n".charCodeAt(),
];
var urlInfo = url.parse(reqUrl,true);
var urlPath = urlInfo.pathname;
var intValue = urlInfo.query.dt;
switch (urlPath)
{
case '/s': //start/stop
var msgLen = intValue.length;
buff = ["A".charCodeAt(),
"T".charCodeAt(),
"+".charCodeAt(),
"S".charCodeAt(),
"T".charCodeAt(),
];
if(intValue == 1){
buff.push("A".charCodeAt());
buff.push("R".charCodeAt());
buff.push("T".charCodeAt());
}else{
buff.push("O".charCodeAt());
buff.push("P".charCodeAt());
}
buff.push("\r".charCodeAt());
buff.push("\n".charCodeAt());
break;
case '/m': //forward/backward
if(intValue == 1){
buff[11] = 0xA4
}else{
buff[11] = 0xA5
}
break;
case '/t': //left/right
if(intValue == 1){
buff[11] = 0xA6
}else{
buff[11] = 0xA7
}
break;
case '/time': //time delay
var msgLen = intValue.length;
buff = ["A".charCodeAt(),
"T".charCodeAt(),
"+".charCodeAt(),
"T".charCodeAt(),
"I".charCodeAt(),
"M".charCodeAt(),
"E".charCodeAt(),
"=".charCodeAt(),
];
for (var i = 0; i < msgLen; i++) {
var s = intValue.substr(i, 1);
buff.push(s.charCodeAt());
}
buff.push("\r".charCodeAt());
buff.push("\n".charCodeAt());
break;
case '/msg': //message
var msgLen = intValue.length;
//buff = [0xFE,0x04 + msgLen,0x93,0xCF,0x7D,0x5A];
buff = ["A".charCodeAt(),
"T".charCodeAt(),
"+".charCodeAt(),
"M".charCodeAt(),
"S".charCodeAt(),
"G".charCodeAt(),
"=".charCodeAt(),
];
/* for (var i = 0; i < msgLen; i++) {
var s = intValue.substr(i, 1);
var v = parseInt(s, 16);
buff.push(v);
} */
for (var i = 0; i < msgLen; i++) {
var s = intValue.substr(i, 1);
//var v = parseInt(s, 16);
buff.push(s.charCodeAt());
}
buff.push("\r".charCodeAt());
buff.push("\n".charCodeAt());
break;
default:break;
}
return buff;
}
var server = require("http")
server.createServer(function(req,res){
var buffSend = decodeMsg(req.url)
write2Serial(buffSend)
res.writeHead(200,{"Content-type":"text/plain"});
res.write("hello");
res.end();
}).listen(8800)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/litial/scratch_serial_modules.git
git@gitee.com:litial/scratch_serial_modules.git
litial
scratch_serial_modules
scratch_serial_modules
main

搜索帮助