1
0
mirror of https://github.com/node-red/node-red-nodes.git synced 2023-10-10 13:36:58 +02:00
node-red-nodes/hardware/physical-web/physical-web.html
2016-03-14 16:24:22 -04:00

166 lines
6.9 KiB
HTML

<!--
Copyright 2015 IBM Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<script type="text/x-red" data-template-name="PhysicalWeb in">
<div class="form-row">
<label for="node-input-topic"><i class="fa fa-tasks"></i> Topic</label>
<input type="text" id="node-input-topic" placeholder="eddystone">
</div>
<br/>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="PhysicalWeb in">
<p><a href="https://google.github.io/physical-web/">Physical Web</a> node to scan for Eddystone beacons.</p>
<p>This node scans for Eddystones and publishes what it finds. It can output 2 types of `msg.payload`</p>
<p>Either a <b>URL</b> type:</p>
<ul>
<li>`type` - Eddystone type</li>
<li>`txPower` - Received power at 0m in dBm</li>
<li>`url` - The URL the beacon is broadcasting</li>
<li>`tlm` - TLM data, if the device is interleaving broadcasts</li>
<li>`rssi` - RSSI of the beacon</li>
<li>`distance` - Estimated distance to the beacon</li>
</ul>
<p>or a <b>UID</b> type:</p>
<ul>
<li>`type` - Eddystone type</li>
<li>`txPower` - Received power at 0m in dBm</li>
<li>`namespace` - 10-byte ID of namspace</li>
<li>`instance` - 6-byte ID insance</li>
<li>`rssi` - RSSI of the beacon</li>
<li>`distance` - Estimated distance to the beacon</li>
<li>`tlm` - TLM data, if the device is interleaving broadcasts</li>
</ul>
<p>Where the `tlm` data will be an object containing:</p>
<ul>
<li>`version` - TML version</li>
<li>`vbatt` - Battery Voltage</li>
<li>`temp` - Temperature</li>
<li>`advCnt` - Advertising PDU count</li>
<li>`secCnt` - Time since power on or reboot</li>
</ul>
</ul>
<p>Linux users should <a href="https://github.com/sandeepmistry/bleno#running-on-linux" target="_new">READ THIS</a>.</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('PhysicalWeb in',{
category: 'input',
defaults: {
name: {value:""},
topic: {value:"eddystone"}
},
color: "#2F7ACD",
inputs:0,
outputs:1,
icon: "physical-web.png",
label: function() {
return this.name||"PhysicalWeb";
},
labelStyle: function() {
return this.name?"node_label_italic":"";
}
});
</script>
<script type="text/x-red" data-template-name="PhysicalWeb out">
<div class="form-row">
<label for="node-input-mode"><i class="fa fa-wrench"></i> <span>Mode</span></label>
<select id="node-input-mode" style='width:250px'>
<option value="url">url</option>
<option value="uid">uid</option>
</select>
</div>
<div class="form-row" id="node-url">
<label for="node-input-url"><i class="fa fa-link"></i> URL</label>
<input type="text" id="node-input-url" style="width:250px;" placeholder="http://...">
<!--<button type="button" id="node-input-url-shorten" disabled=true>Shorten</button> -->
<p style="margin-left:100px; width:70%">This URL needs to be shorter than 18 bytes
in length to meet Eddystone spec</p>
</div>
<div class="form-row" id="node-namespace">
<label for="node-input-namespace"><i class="fa fa-bluetooth"></i> Namespace</label>
<input type="text" id="node-input-namespace" style="width:250px;">
</div>
<div class="form-row" id="node-instance">
<label for="node-input-instance"><i class="fa fa-bluetooth"></i> Instance</label>
<input type="text" id="node-input-instance" style="width:250px;">
</div>
<div class="form-row">
<label for="node-input-period"><i class="fa fa-repeat"></i> Period (S)</label>
<input type="text" id="node-input-period" style="width:80px;" placeholder="Period">
</div>
<div class="form-row">
<label for="node-input-power"><i class="fa fa-battery-half"></i> Power (dB)</label>
<input type="text" id="node-input-power" style="width:80px;" placeholder="Power">
</div>
<br/>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="PhysicalWeb out">
<p><a href="https://google.github.io/physical-web/">Physical Web</a> beacon node.</p>
<p>This node can take the value of <code>msg.payload</code> and publishes it as an Eddystone URL
announcement. URLs <b>must</b> be less than 18 bytes long, so should be run through a shortner first.</p>
<p>You can also preset the URL, in which case the node does not require any input.</p>
<p>The config window will allow you to set the powerlevel (-30 to 100 db) and the period (S)
between anouncements.</p>
<p>Linux users should <a href="https://github.com/sandeepmistry/bleno#running-on-linux" target="_new">READ THIS</a>.</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('PhysicalWeb out',{
category: 'output',
defaults: {
name: {value:""},
mode: {value:"url"},
url: {value:"",validate:function(v) {return v.length<19; }},
namespace: {value:""},
instance: {value:""},
power: {value:"-21",validate:RED.validators.number()},
period: {value:"1",validate:RED.validators.number()}
},
color: "#2F7ACD",
inputs:1,
outputs:0,
icon: "physical-web.png",
label: function() {
return this.name||"PhysicalWeb";
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
$( "#node-input-period" ).spinner({min:1});
$( "#node-input-power" ).spinner({min:-30,max:100});
$("#node-input-mode").on("change",function() {
if ($("#node-input-mode").val() === "uid") {
$("#node-url").hide();
$("#node-namespace").show();
$("#node-instance").show();
} else {
$("#node-url").show();
$("#node-namespace").hide();
$("#node-instance").hide();
}
});
}
});
</script>