js调用串口通信,读取指纹仪数据

参考资料:http://blog.csdn.net/catxl313/article/details/5244243

全部代码如下,此为读取指纹仪:

<!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;
		function initss(){
			document.getElementById("fingerAGM").value = "";
			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>

 ComAxCtrl.CommOpen(1,"9600,n,8,1"),1表示com口编号。

ComAxCtrl.CommSend();发送命令

相关推荐