欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

obix 协议 通过http协议读写举例

程序员文章站 2022-03-12 08:37:15
...

1,后台建立obix协议。

 2.建立一个bw 可写的节点

3,获取节点值get

http://10.7.10.15/obix/config/Sampler/pw

4:设置节点值:

http://10.7.10.15/obix/config/Sampler/pw/set/<bool val="true" />

 

下雨了,先回家,等接好图在详细写下,整个过程。

1省了:无法上传图片。

2省了:无法上传图片

3下面是页面内容:

<script type='text/javascript' src='/ord?file:^obixWatch.js'></script>
<script type='text/javascript' src='/ord?file:^jquery.js'></script>
<script type='text/javascript' language='Javascript'>

  var obixWatch = new ObixWatch();
  
  /**
   * Called when the page is loaded
   */
  function start()
  {
    // Build the items to Watch
    var item1 = { uri: '/obix/config/Test/Light1/out/', 
                  handler: watchCallback, 
                  dispName: 'VAV1', 
                  inBody: '',
                  pickle: document.getElementById('abc001') 
                };
    
    var item2 = { uri: '/obix/config/Test/Light2/out/', 
                  handler: watchCallback, 
                  dispName: 'VAV2', 
                  inBody: '',
                  pickle: document.getElementById('abc002') 
                };
    
    var item3 = { uri: '/obix/config/Test/Light3/out/', 
                  handler: watchCallback, 
                  dispName: 'VAV3', 
                  inBody: '',
                  pickle: document.getElementById('abc003') 
                };
	 var item4 = { uri: '/obix/config/Test/Motor/out/', 
				  handler: watchCallback2, 
				  dispName: 'VAV4', 
				  inBody: '',
				  pickle: document.getElementById('abc004') 
	         };
	 var item5 = { uri: '/obix/config/Test/IR_IN/out/', 
		  handler: watchCallback3, 
		  dispName: 'VAV5', 
		  inBody: '',
		  pickle: document.getElementById('abc005') 
	 };
	  var item6 = { uri: '/obix/config/Test/Restive/out/', 
		  handler: watchCallback4, 
		  dispName: 'VAV6', 
		  inBody: '',
		  pickle: document.getElementById('abc006') 
	 };

    // Add the items to Watch                
    obixWatch.addURIs([item1, item2, item3,item4,item5,item6]);
    
    // Start the Watch
    obixWatch.startWatch();

 
  }
  
  /**
   * Called when the page is unloaded
   */
  function stop()
  {
    obixWatch.stopWatch();
  }
  
  /**
   * Call back when the oBIX Watch is updated
   */
  function watchCallback(uriItem, node)
  {
    // Update the inner HTML element with the 'display' part of oBIX
    uriItem.pickle.innerHTML = node.getAttribute('val');  
	var num=node.getAttribute('val'); 
	if(num==5.0){
	    uriItem.pickle.innerHTML ="<img src='images/light_yes.jpg'/>";  
	}
	else{
	    uriItem.pickle.innerHTML ="<img src='images/light_no.jpg'/>";  
	}
  }

    function watchCallback2(uriItem, node)
  {
    // Update the inner HTML element with the 'display' part of oBIX
    uriItem.pickle.innerHTML = node.getAttribute('val');  
	var flag=node.getAttribute('val'); 
	if(flag=="true"){
	    uriItem.pickle.innerHTML ="<img src='images/fenji_yes.jpg'/>";  
	}
	else{
	    uriItem.pickle.innerHTML ="<img src='images/fenji_no.jpg'/>";  
	}
  }
     function watchCallback3(uriItem, node)
  {
    // Update the inner HTML element with the 'display' part of oBIX
    uriItem.pickle.innerHTML = node.getAttribute('val');  
	var flag=node.getAttribute('val'); 
	if(flag=="true"){
	    uriItem.pickle.innerHTML ="有感觉物体存在";  
	}
	else{
	    uriItem.pickle.innerHTML ="没有感觉物体";  
	}
  }
   function watchCallback4(uriItem, node)
  {
    // Update the inner HTML element with the 'display' part of oBIX
    
	var flag=node.getAttribute('val'); 
	   uriItem.pickle.innerHTML = node.getAttribute('val');  
  }


  function ajaxRequest(){
   $.ajax({
   type: "POST",
   url: "/obix/config/Test2/Bw1/set/",
   data: '<bool val="false" />',
   success: function(msg){
     //alert( "data: " + msg );
   }
   });
  }

   function ajaxRequest3(method,httpurl,arg1,arg2){
	  $.ajax({
    type: method,
    url: httpurl,
    data: '<'+ arg1+' val="'+arg2+'"/>',
    success: function(msg){
     //alert( "data: " + msg );
   }
   });
  }


</script> 
</head>

<body onload="start()" onunload="stop()">
<div>
 
  
   <div>
     <fieldset style="width: 500">
     <h1 align="center">灯泡控制</h1><br />
    <table border="1" width="500" height="220" >
    <tr>
      <th>名称</th>
      <th>灯泡状态</th>
      <th colspan="2">控制开关</th>
    </tr>
    <tr>
      <td>灯1</td>
      <td><a id='abc001'>-wait-</a></td>
	  <td> <input type="button" value="开灯" onclick='ajaxRequest3("Post","/obix/config/Test/Light1/set/","real",5 )' /></td>
	  <td>  <input type="button" value="关灯" onclick='ajaxRequest3("post","/obix/config/Test/Light1/set/","real",0 )' /></td>
    </tr>
    <tr>
    <td>灯2</td>
      <td><a id='abc002'>-wait-</a></td>
	 <td> <input type="button" value="开灯" onclick='ajaxRequest3("Post","/obix/config/Test/Light2/set/","real",5 )' /></td>
	  <td>  <input type="button" value="关灯" onclick='ajaxRequest3("post","/obix/config/Test/Light2/set/","real",0 )' /></td>
    </tr>
    <tr>
      <td>灯3</td>
      <td><a id='abc003'>-wait-</a></td>
	  <td> <input type="button" value="开灯" onclick='ajaxRequest3("Post","/obix/config/Test/Light3/set/","real",5 )' /></td>
	  <td><input type="button" value="关灯" onclick='ajaxRequest3("post","/obix/config/Test/Light3/set/","real",0 )' /></td>
    </tr>
    </table>
	  </fieldset>
    </div>
	</div>
</br>
<hr/>
<div>
 <div style="float: left">
   <fieldset style="width: 200">
 <h1 align="center">电机机控制</h1><br />
       <a id='abc004'>-wait-</a>
<table width="200">
  <tr>
   <td>
   <input type="button" value="打开电机" onclick='ajaxRequest3("post","/obix/config/Test/Motor/set/","bool","true" )' />
   <input type="button" value="关闭电机" onclick='ajaxRequest3("post","/obix/config/Test/Motor/set/","bool","false" )' />
   <td>
  </tr>
 </table>
	  </fieldset>
    </div>

	  <div style="float: inherit">
    <fieldset style="width: 300;height:105" >
          
			<h1 align="center">红外感应</h1><br />
       <h1  align="center" style="color: red;font-size: 14"> <a id='abc005'>-wait-</a></h1>
	  </fieldset>
    </div>
	 <div style="float: inherit">
  <fieldset style="width: 300;height:105"">
 <h1  align="center">弯曲度感应</h1><br />
     <h1  align="center" style="color: red;">   <a id='abc006'>-wait-</a></h1>
	  </fieldset>
    </div>
	</div>
</body>
</html>

 用页面的话,延迟会有一些,不如那个applet好,但这样我们就可以操作页面显示更好点,如何要查看调用的节点的路径我们就的看http://localhost/obix/