Web串口读取数据
来源:互联网 发布:淘宝手机端链接地址 编辑:程序博客网 时间:2024/05/16 05:46
项目开发中遇到的实际问题,需要从浏览器读取串口数据。网上查了很多资料。比较靠谱的整理了一下。
需要下载一个ComAxCtrl.ocx控件,然后将控件注册一下即可。
<!Doctype html>
<html><head>
<title></title>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<style type="text/css">
body{
text-align: center;
font-size: 12px;
margin: 0px;
padding: 0px;
}
.clear{
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
.cssCenter{
margin-top: 0px;
margin-bottom: 0px;
margin-left: auto;
margin-right: auto;
}
</style>
<script type="text/javascript">
var ComAxCtrl=null;
/**
* 检测是否允许ActiveX控件运行
* @param true-允许ActiveX控件运行;false-不允许ActiveX控件运行
*/
function isActiveXEnabled() {
//xmlhttp对象
var kXmlHttp = null;
//如果是IE浏览器
if ($.browser.msie!=null && $.browser.msie == true) {
//微软IE支持的xmlhttp对象
var aVersionhs = ["MSXML2.XMLHttp.5.0",
"MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp",
"Microsoft.XMLHttp"];
//IE创建方式
for (var i=0; i<aVersionhs.length; i++) {
try {
kXmlHttp = new ActiveXObject(aVersionhs[i]);
return true;
} catch(e) {
}
}
} else {
try {
//非微软IE支持的xmlhttp对象
if (typeof XMLHttpRequest != "undefined") {
kXmlHttp = new XMLHttpRequest();
return true;
}
} catch(e) {
}
}
return false;
}
/**
* 判断ActiveX控件是否已经注册并加载到浏览器
* @return true-已经注册,并且加载;false-未注册控件或未能成功加载ActiveX控件。
*/
function isActiveXRegistered () {
try {
new ActiveXObject("MRCOMAX.MRCOMAXCtrl.1");
return true;
} catch (e) {
}
return false;
}
function initss(){
alert("isActiveXEnabled=="+isActiveXEnabled());
alert("isActiveXRegistered=="+isActiveXRegistered());
document.getElementById("info").value = "";
var flag = false;
var flag1 = false;
if(ComAxCtrl==null){
flag = true;
}
if(flag){
ComAxCtrl = document.getElementById("ComAxCtrl");
ComAxCtrl.attachEvent("OnCommRecv",OnCommRecv);
flag1 = true;
}else{
if(!ComAxCtrl.IsCommOpen()){
flag1 = true;
}
}
if(flag1){
var result = ComAxCtrl.CommOpen(1,"9600,n,8,1");
if(result==0){
alert("无法找到设备!");
return false;
}
}
if(!ComAxCtrl.IsCommOpen()){
alert("设备未打开!");
return false;
}
//发送命令
document.getElementById("info").value="";
var cR = ComAxCtrl.CommSend(stringToHex("TPLT"));
}
function OnCommRecv(data){
hexToString(data);
}
function stringToHex(str){
var val="";
for(var i = 0; i < str.length; i++){
if(val == "")
val = "0X"+str.charCodeAt(i).toString(16);
else
val += ",0X" + str.charCodeAt(i).toString(16);
}
return val;
}
function hexToString(str){
var val="";
var arr = str.split(" ");
for(var i = 0; i<arr.length;i++){
val += String.fromCharCode("0x"+arr[i]);
}
var info = document.getElementById("info").value+val;
document.getElementById("info").value = info;
if(info.length==280){
//接收完数据
}
}
</script>
</head>
<body>
<object id="ComAxCtrl" classid="clsid:1D82E7E4-CDEE-4894-92C2-A3E605D4F84E" codebase="<%=basePath %>ocx/ComAxCtrl.ocx" style="width:1px; height:1px;"></object>
<input type="hidden" id="fingerAGM" value="" />
<button onclick="initss()">读取数据</button>
<textarea rows="20" cols="50" id="info"></textarea>
</body>
</html>
- Web串口读取数据
- MFC读取串口数据
- 读取串口数据画图
- 线程读取串口数据
- MFC读取串口数据
- 读取串口数据画图
- java读取串口数据
- QT串口读取数据
- 串口读取数据
- 读取串口数据
- Linux读取串口数据
- linux串口数据读取方法
- java通过串口读取数据
- pixhawk串口读取传感器数据
- Python读取串口数据注意
- 通过串口读取mavlink数据
- java监听、读取串口数据
- 【原】LPC1114读取串口读不到数据
- Foundation kit介绍
- Dubbo架构设计详解
- 枚举Java 语言中 Enum 类型的使用介绍
- java springmvc查询列表
- GPRS技术在紫金桥组态软件中的应用
- Web串口读取数据
- Bash的环境配置文件
- FusionCharts的使用方法
- PowerDesigner的Table视图同时显示Code和Name的方法
- oracle索引简介2
- SparkV1.5源码编译版通过
- Tachyon 0.7.1源码的编译
- Sqoop源码编译与分析(V1.4.6)
- 搜狗引擎查询日志的数据入库(Mysql…