dial_a_device_node 0.0.153
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +674 -0
- data/README.md +94 -0
- data/Rakefile +1 -0
- data/app/assets/images/denver_summit.jpg +0 -0
- data/app/assets/images/eppendorf_innova_42.jpg +0 -0
- data/app/assets/images/heidolph.jpg +0 -0
- data/app/assets/images/ika_ret_control.jpg +0 -0
- data/app/assets/images/kern.jpg +0 -0
- data/app/assets/images/knf_rc900.jpg +0 -0
- data/app/assets/images/knf_sc920.jpg +0 -0
- data/app/assets/images/knf_simdos_02.jpg +0 -0
- data/app/assets/images/pce_balance.jpg +0 -0
- data/app/assets/images/purebeaglebone.jpg +0 -0
- data/app/assets/images/weathercape.jpg +0 -0
- data/app/assets/javascripts/dial_a_device_node/consolelogger.js +176 -0
- data/app/assets/javascripts/dial_a_device_node/deviceconnection.js +225 -0
- data/app/assets/javascripts/dial_a_device_node/devices/denver_summit.js +153 -0
- data/app/assets/javascripts/dial_a_device_node/devices/denver_summit_SIM.js +111 -0
- data/app/assets/javascripts/dial_a_device_node/devices/denver_summit_UI.js +121 -0
- data/app/assets/javascripts/dial_a_device_node/devices/eppendorf_innova_42.js +128 -0
- data/app/assets/javascripts/dial_a_device_node/devices/eppendorf_innova_42_SIM.js +66 -0
- data/app/assets/javascripts/dial_a_device_node/devices/eppendorf_innova_42_UI.js +46 -0
- data/app/assets/javascripts/dial_a_device_node/devices/heidolph.js +62 -0
- data/app/assets/javascripts/dial_a_device_node/devices/heidolph_SIM.js +24 -0
- data/app/assets/javascripts/dial_a_device_node/devices/heidolph_UI.js +17 -0
- data/app/assets/javascripts/dial_a_device_node/devices/ika_ret_control.js +192 -0
- data/app/assets/javascripts/dial_a_device_node/devices/ika_ret_control_SIM.js +233 -0
- data/app/assets/javascripts/dial_a_device_node/devices/ika_ret_control_UI.js +96 -0
- data/app/assets/javascripts/dial_a_device_node/devices/kern.js +137 -0
- data/app/assets/javascripts/dial_a_device_node/devices/kern_SIM.js +118 -0
- data/app/assets/javascripts/dial_a_device_node/devices/kern_UI.js +121 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_rc900.js +289 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_rc900_SIM.js +188 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_rc900_UI.js +179 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_sc920.js +309 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_sc920_SIM.js +298 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_sc920_UI.js +441 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_simdos_02.js +283 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_simdos_02_SIM.js +130 -0
- data/app/assets/javascripts/dial_a_device_node/devices/knf_simdos_02_UI.js +188 -0
- data/app/assets/javascripts/dial_a_device_node/devices/legacy_vnc.js +106 -0
- data/app/assets/javascripts/dial_a_device_node/devices/legacy_vnc_SIM.js +32 -0
- data/app/assets/javascripts/dial_a_device_node/devices/legacy_vnc_UI.js +26 -0
- data/app/assets/javascripts/dial_a_device_node/devices/pce_balance.js +111 -0
- data/app/assets/javascripts/dial_a_device_node/devices/pce_balance_SIM.js +80 -0
- data/app/assets/javascripts/dial_a_device_node/devices/pce_balance_UI.js +69 -0
- data/app/assets/javascripts/dial_a_device_node/devices/purebeaglebone.js +286 -0
- data/app/assets/javascripts/dial_a_device_node/devices/purebeaglebone_SIM.js +13 -0
- data/app/assets/javascripts/dial_a_device_node/devices/purebeaglebone_UI.js +256 -0
- data/app/assets/javascripts/dial_a_device_node/devices/weathercape.js +75 -0
- data/app/assets/javascripts/dial_a_device_node/devices/weathercape_SIM.js +33 -0
- data/app/assets/javascripts/dial_a_device_node/devices/weathercape_UI.js +42 -0
- data/app/assets/javascripts/dial_a_device_node/folderwatcher.js +43 -0
- data/app/assets/javascripts/dial_a_device_node/helper/WebSocket-Node-wrapper.js +36 -0
- data/app/assets/javascripts/dial_a_device_node/helper/XMLHttpRequest.js +579 -0
- data/app/assets/javascripts/dial_a_device_node/helper/agent.js +125 -0
- data/app/assets/javascripts/dial_a_device_node/helper/ajax.js +300 -0
- data/app/assets/javascripts/dial_a_device_node/helper/type.js +10 -0
- data/app/assets/javascripts/dial_a_device_node/php/comport.php +49 -0
- data/app/assets/javascripts/dial_a_device_node/php/php_serial.class.php +622 -0
- data/app/assets/javascripts/dial_a_device_node/systemstatus.js +124 -0
- data/app/assets/javascripts/dial_a_device_node/webconnection.js +197 -0
- data/app/assets/javascripts/dial_a_device_node/websocket_rails/abstract_connection.js.coffee +45 -0
- data/app/assets/javascripts/dial_a_device_node/websocket_rails/channel.js.coffee +70 -0
- data/app/assets/javascripts/dial_a_device_node/websocket_rails/event.js.coffee +42 -0
- data/app/assets/javascripts/dial_a_device_node/websocket_rails/http_connection.js.coffee +89 -0
- data/app/assets/javascripts/dial_a_device_node/websocket_rails/websocket_connection.js.coffee +37 -0
- data/app/assets/javascripts/dial_a_device_node/websocket_rails/websocket_rails.js.coffee +164 -0
- data/app/views/devices/ui/_denver_summit.html.erb +52 -0
- data/app/views/devices/ui/_eppendorf_innova_42.html.erb +72 -0
- data/app/views/devices/ui/_heidolph.html.erb +54 -0
- data/app/views/devices/ui/_ika_ret_control.html.erb +81 -0
- data/app/views/devices/ui/_kern.html.erb +52 -0
- data/app/views/devices/ui/_knf_rc900.html.erb +143 -0
- data/app/views/devices/ui/_knf_sc920.html.erb +194 -0
- data/app/views/devices/ui/_knf_simdos_02.html.erb +98 -0
- data/app/views/devices/ui/_pce_balance.html.erb +37 -0
- data/app/views/devices/ui/_purebeaglebone.html.erb +137 -0
- data/app/views/devices/ui/_weathercape.html.erb +313 -0
- data/beaglebonechip.js +57 -0
- data/dial-a-device-web.js +84 -0
- data/dial_a_device_node.gemspec +23 -0
- data/dial_a_device_node.js +419 -0
- data/lib/dial_a_device_node.rb +6 -0
- data/lib/dial_a_device_node/version.rb +3 -0
- data/package.json +35 -0
- data/start.js +40 -0
- metadata +161 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
x = require '../helper/XMLHttpRequest.js'
|
|
2
|
+
ajax = require '../helper/ajax.js'
|
|
3
|
+
|
|
4
|
+
###
|
|
5
|
+
HTTP Interface for the WebSocketRails client.
|
|
6
|
+
###
|
|
7
|
+
|
|
8
|
+
class WebSocketRails.HttpConnection
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
httpFactories: -> [
|
|
13
|
+
-> new x.XMLHttpRequest(),
|
|
14
|
+
-> new ActiveXObject("Msxml2.XMLHTTP"),
|
|
15
|
+
-> new ActiveXObject("Msxml3.XMLHTTP"),
|
|
16
|
+
-> new ActiveXObject("Microsoft.XMLHTTP")
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
createXMLHttpObject: =>
|
|
20
|
+
xmlhttp = false
|
|
21
|
+
factories = @httpFactories()
|
|
22
|
+
for factory in factories
|
|
23
|
+
try
|
|
24
|
+
xmlhttp = factory()
|
|
25
|
+
catch e
|
|
26
|
+
continue
|
|
27
|
+
break
|
|
28
|
+
xmlhttp
|
|
29
|
+
|
|
30
|
+
constructor: (@url, @dispatcher) ->
|
|
31
|
+
@_url = @url
|
|
32
|
+
@_conn = new x.XMLHttpRequest()
|
|
33
|
+
@last_pos = 0
|
|
34
|
+
@message_queue = []
|
|
35
|
+
@_conn.onreadystatechange = @parse_stream
|
|
36
|
+
# @_conn.addEventListener "load", @connectionClosed, false
|
|
37
|
+
@_conn.open "GET", @_url, true
|
|
38
|
+
@_conn.send()
|
|
39
|
+
|
|
40
|
+
parse_stream: =>
|
|
41
|
+
if @_conn.readyState == 3
|
|
42
|
+
|
|
43
|
+
data = @_conn.responseText.substring @last_pos
|
|
44
|
+
@last_pos = @_conn.responseText.length
|
|
45
|
+
|
|
46
|
+
data = data.replace( /\]\]\[\[/g, "],[" )
|
|
47
|
+
if data != ""
|
|
48
|
+
decoded_data = JSON.parse data
|
|
49
|
+
else
|
|
50
|
+
decoded_data = {}
|
|
51
|
+
|
|
52
|
+
@dispatcher.new_message decoded_data
|
|
53
|
+
|
|
54
|
+
# if @_conn.readyState == 0
|
|
55
|
+
# close_event = new WebSocketRails.Event(['connection_closed',{}])
|
|
56
|
+
# @dispatcher.dispatch close_event
|
|
57
|
+
|
|
58
|
+
# if @_conn.readyState == 4
|
|
59
|
+
# close_event = new WebSocketRails.Event(['connection_closed',{}])
|
|
60
|
+
# @dispatcher.dispatch close_event
|
|
61
|
+
|
|
62
|
+
trigger: (event) =>
|
|
63
|
+
if @dispatcher.state != 'connected'
|
|
64
|
+
@message_queue.push event
|
|
65
|
+
else
|
|
66
|
+
@post_data @dispatcher.connection_id, event.serialize()
|
|
67
|
+
|
|
68
|
+
post_data: (connection_id, payload) ->
|
|
69
|
+
ajax
|
|
70
|
+
url: @_url
|
|
71
|
+
type: 'POST'
|
|
72
|
+
data:
|
|
73
|
+
client_id: connection_id
|
|
74
|
+
data: payload
|
|
75
|
+
success: ->
|
|
76
|
+
|
|
77
|
+
flush_queue: (connection_id) =>
|
|
78
|
+
for event in @message_queue
|
|
79
|
+
# Events queued before connecting do not have the correct
|
|
80
|
+
# connection_id set yet. We need to update it before dispatching.
|
|
81
|
+
if connection_id?
|
|
82
|
+
event.connection_id = @dispatcher.connection_id
|
|
83
|
+
@trigger event
|
|
84
|
+
@message_queue = []
|
|
85
|
+
|
|
86
|
+
connectionClosed: (event) =>
|
|
87
|
+
close_event = new WebSocketRails.Event(['connection_closed', event])
|
|
88
|
+
@dispatcher.state = 'disconnected'
|
|
89
|
+
@dispatcher.dispatch close_event
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
x = require '../helper/WebSocket-Node-wrapper.js'
|
|
2
|
+
|
|
3
|
+
###
|
|
4
|
+
MODIFICATIONS!!!
|
|
5
|
+
window does not exist
|
|
6
|
+
@_conn constructor use x.Websocket(@url)
|
|
7
|
+
###
|
|
8
|
+
|
|
9
|
+
###
|
|
10
|
+
WebSocket Interface for the WebSocketRails client.
|
|
11
|
+
###
|
|
12
|
+
class WebSocketRails.WebSocketConnection extends WebSocketRails.AbstractConnection
|
|
13
|
+
connection_type: 'websocket'
|
|
14
|
+
|
|
15
|
+
constructor: (@url, @dispatcher) ->
|
|
16
|
+
super
|
|
17
|
+
if @url.match(/^wss?:\/\//)
|
|
18
|
+
console.log "WARNING: Using connection urls with protocol specified is depricated"
|
|
19
|
+
# else if window.location.protocol == 'https:'
|
|
20
|
+
# @url = "wss://#{@url}"
|
|
21
|
+
else
|
|
22
|
+
@url = "ws://#{@url}"
|
|
23
|
+
@_conn = new x.WebSocket(@url)
|
|
24
|
+
@_conn.onmessage = (event) =>
|
|
25
|
+
event_data = JSON.parse event.data
|
|
26
|
+
@on_message(event_data)
|
|
27
|
+
@_conn.onclose = (event) =>
|
|
28
|
+
@on_close(event)
|
|
29
|
+
@_conn.onerror = (event) =>
|
|
30
|
+
@on_error(event)
|
|
31
|
+
|
|
32
|
+
close: ->
|
|
33
|
+
@_conn.close()
|
|
34
|
+
|
|
35
|
+
send_event: (event) ->
|
|
36
|
+
super
|
|
37
|
+
@_conn.send event.serialize()
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
util = require 'util'
|
|
2
|
+
|
|
3
|
+
###
|
|
4
|
+
MODIFICATIONS!!!
|
|
5
|
+
###
|
|
6
|
+
|
|
7
|
+
###
|
|
8
|
+
WebsocketRails JavaScript Client
|
|
9
|
+
|
|
10
|
+
Setting up the dispatcher:
|
|
11
|
+
var dispatcher = new WebSocketRails('localhost:3000/websocket');
|
|
12
|
+
dispatcher.on_open = function() {
|
|
13
|
+
// trigger a server event immediately after opening connection
|
|
14
|
+
dispatcher.trigger('new_user',{user_name: 'guest'});
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
Triggering a new event on the server
|
|
18
|
+
dispatcherer.trigger('event_name',object_to_be_serialized_to_json);
|
|
19
|
+
|
|
20
|
+
Listening for new events from the server
|
|
21
|
+
dispatcher.bind('event_name', function(data) {
|
|
22
|
+
console.log(data.user_name);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
Stop listening for new events from the server
|
|
26
|
+
dispatcher.unbind('event')
|
|
27
|
+
###
|
|
28
|
+
class global.WebSocketRails
|
|
29
|
+
constructor: (@url, @use_websockets = true) ->
|
|
30
|
+
@callbacks = {}
|
|
31
|
+
@channels = {}
|
|
32
|
+
@queue = {}
|
|
33
|
+
|
|
34
|
+
@connect()
|
|
35
|
+
|
|
36
|
+
connect: ->
|
|
37
|
+
@state = 'connecting'
|
|
38
|
+
|
|
39
|
+
unless @use_websockets
|
|
40
|
+
@_conn = new WebSocketRails.HttpConnection "http://"+@url, @
|
|
41
|
+
else
|
|
42
|
+
@_conn = new WebSocketRails.WebSocketConnection @url, @
|
|
43
|
+
|
|
44
|
+
@_conn.new_message = @new_message
|
|
45
|
+
|
|
46
|
+
disconnect: ->
|
|
47
|
+
if @_conn
|
|
48
|
+
@_conn.close()
|
|
49
|
+
delete @_conn._conn
|
|
50
|
+
delete @_conn
|
|
51
|
+
|
|
52
|
+
@state = 'disconnected'
|
|
53
|
+
|
|
54
|
+
# Reconnects the whole connection,
|
|
55
|
+
# keeping the messages queue and its' connected channels.
|
|
56
|
+
#
|
|
57
|
+
# After successfull connection, this will:
|
|
58
|
+
# - reconnect to all channels, that were active while disconnecting
|
|
59
|
+
# - resend all events from which we haven't received any response yet
|
|
60
|
+
reconnect: =>
|
|
61
|
+
old_connection_id = @_conn?.connection_id
|
|
62
|
+
|
|
63
|
+
@disconnect()
|
|
64
|
+
@connect()
|
|
65
|
+
|
|
66
|
+
# Resend all unfinished events from the previous connection.
|
|
67
|
+
for id, event of @queue
|
|
68
|
+
if event.connection_id == old_connection_id && !event.is_result()
|
|
69
|
+
@trigger_event event
|
|
70
|
+
|
|
71
|
+
@reconnect_channels()
|
|
72
|
+
|
|
73
|
+
new_message: (data) =>
|
|
74
|
+
for socket_message in data
|
|
75
|
+
event = new WebSocketRails.Event( socket_message )
|
|
76
|
+
if event.is_result()
|
|
77
|
+
@queue[event.id]?.run_callbacks(event.success, event.data)
|
|
78
|
+
delete @queue[event.id]
|
|
79
|
+
else if event.is_channel()
|
|
80
|
+
@dispatch_channel event
|
|
81
|
+
else if event.is_ping()
|
|
82
|
+
@pong()
|
|
83
|
+
else
|
|
84
|
+
@dispatch event
|
|
85
|
+
|
|
86
|
+
if @state == 'connecting' and event.name == 'client_connected'
|
|
87
|
+
@connection_established event.data
|
|
88
|
+
|
|
89
|
+
connection_established: (data) =>
|
|
90
|
+
@state = 'connected'
|
|
91
|
+
@_conn.setConnectionId(data.connection_id)
|
|
92
|
+
@_conn.flush_queue()
|
|
93
|
+
if @on_open?
|
|
94
|
+
@on_open(data)
|
|
95
|
+
|
|
96
|
+
bind: (event_name, callback) =>
|
|
97
|
+
@callbacks[event_name] ?= []
|
|
98
|
+
@callbacks[event_name].push callback
|
|
99
|
+
|
|
100
|
+
unbind: (event_name) =>
|
|
101
|
+
delete @callbacks[event_name]
|
|
102
|
+
|
|
103
|
+
trigger: (event_name, data, success_callback, failure_callback) =>
|
|
104
|
+
event = new WebSocketRails.Event( [event_name, data, @_conn?.connection_id], success_callback, failure_callback )
|
|
105
|
+
@trigger_event event
|
|
106
|
+
|
|
107
|
+
trigger_event: (event) =>
|
|
108
|
+
@queue[event.id] ?= event # Prevent replacing an event that has callbacks stored
|
|
109
|
+
@_conn.trigger event if @_conn
|
|
110
|
+
event
|
|
111
|
+
|
|
112
|
+
dispatch: (event) =>
|
|
113
|
+
return unless @callbacks[event.name]?
|
|
114
|
+
for callback in @callbacks[event.name]
|
|
115
|
+
callback event.data
|
|
116
|
+
|
|
117
|
+
subscribe: (channel_name, success_callback, failure_callback) =>
|
|
118
|
+
unless @channels[channel_name]?
|
|
119
|
+
channel = new WebSocketRails.Channel channel_name, @, false, success_callback, failure_callback
|
|
120
|
+
@channels[channel_name] = channel
|
|
121
|
+
channel
|
|
122
|
+
else
|
|
123
|
+
@channels[channel_name]
|
|
124
|
+
|
|
125
|
+
subscribe_private: (channel_name, success_callback, failure_callback) =>
|
|
126
|
+
unless @channels[channel_name]?
|
|
127
|
+
channel = new WebSocketRails.Channel channel_name, @, true, success_callback, failure_callback
|
|
128
|
+
@channels[channel_name] = channel
|
|
129
|
+
channel
|
|
130
|
+
else
|
|
131
|
+
@channels[channel_name]
|
|
132
|
+
|
|
133
|
+
unsubscribe: (channel_name) =>
|
|
134
|
+
return unless @channels[channel_name]?
|
|
135
|
+
@channels[channel_name].destroy()
|
|
136
|
+
delete @channels[channel_name]
|
|
137
|
+
|
|
138
|
+
dispatch_channel: (event) =>
|
|
139
|
+
return unless @channels[event.channel]?
|
|
140
|
+
@channels[event.channel].dispatch event.name, event.data
|
|
141
|
+
|
|
142
|
+
supports_websockets: =>
|
|
143
|
+
(typeof(WebSocket) == "function" or typeof(WebSocket) == "object")
|
|
144
|
+
|
|
145
|
+
pong: =>
|
|
146
|
+
pong = new WebSocketRails.Event( ['websocket_rails.pong', {}, @_conn?.connection_id] )
|
|
147
|
+
@_conn.trigger pong
|
|
148
|
+
|
|
149
|
+
connection_stale: =>
|
|
150
|
+
@state != 'connected'
|
|
151
|
+
|
|
152
|
+
# Destroy and resubscribe to all existing @channels.
|
|
153
|
+
reconnect_channels: ->
|
|
154
|
+
for name, channel of @channels
|
|
155
|
+
callbacks = channel._callbacks
|
|
156
|
+
channel.destroy()
|
|
157
|
+
delete @channels[name]
|
|
158
|
+
|
|
159
|
+
channel = if channel.is_private
|
|
160
|
+
@subscribe_private name
|
|
161
|
+
else
|
|
162
|
+
@subscribe name
|
|
163
|
+
channel._callbacks = callbacks
|
|
164
|
+
channel
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<div class="row-fluid" style="margin-top:20px;">
|
|
2
|
+
<div class="span12">
|
|
3
|
+
<div id="tab2" name="tab2" class="well" style="text-align: center";>
|
|
4
|
+
<label id="Display" name="Display" ><span id="iDisplay" style="font-size: 20px;"></span></label>
|
|
5
|
+
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<div class="row-fluid">
|
|
12
|
+
<div class="span12">
|
|
13
|
+
|
|
14
|
+
<span class="btn-group">
|
|
15
|
+
<button id="powerbutton" name="powerbutton" class="btn btn-warning btn-large" onclick="ui.togglepower(); "><i id="powericon" name="powericon" class="icon-play"></i> <span id="power">POWER</span></button>
|
|
16
|
+
</span>
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
<span class="btn-group">
|
|
21
|
+
<button id="reset" name="RESET" class=" btn btn-inverse btn-large" onclick="ui.reset(); " >RESET</button>
|
|
22
|
+
</span>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<span class="btn-group">
|
|
26
|
+
<button id="Calibrate" name="Cal" class=" btn btn-info btn-large" onclick="ui.calibration();">CAL </button>
|
|
27
|
+
</span>
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
<span class="btn-group">
|
|
31
|
+
|
|
32
|
+
<button id="tare" name="TARE" class="btn btn-danger btn-large " onclick="ui.tare();" > TARE </button>
|
|
33
|
+
</span>
|
|
34
|
+
|
|
35
|
+
<span class="btn-group">
|
|
36
|
+
<button id="print" name="PRINT" class=" btn btn-success btn-large" onclick="ui.print(); " > PRINT</button>
|
|
37
|
+
</span>
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
<span class="btn-group">
|
|
42
|
+
<button id="autoprintbutton" name="autoprintbutton" class=" btn btn-warning btn-large" onclick="ui.toggleautoprint(); " ><i id="autoprinticon" name="autoprinticon" class="icon-play"></i> <span id="autoprint">AUTOPRINT</span></button>
|
|
43
|
+
</span>
|
|
44
|
+
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<script type="text/javascript">
|
|
48
|
+
if (connectiontype == "simulation") {
|
|
49
|
+
//ev.emit("device.set.print");
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
</div>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
|
|
2
|
+
<div class="row-fluid clearfix" style="height: 160px;">
|
|
3
|
+
|
|
4
|
+
<div class="col-md-5 col-sm-5">
|
|
5
|
+
|
|
6
|
+
<div id="gauge1" class="200x160px"></div>
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<div class="inline" id="temperature_setpoint"> </div>
|
|
10
|
+
|
|
11
|
+
<script type="text/javascript">
|
|
12
|
+
|
|
13
|
+
smartinput ("temperature_setpoint", function(val) {
|
|
14
|
+
ui.setTemperatureSetpoint(val);
|
|
15
|
+
}, "Set (°C)");
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<div class="btn-group btn-group-justified">
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div class="col-md-5 col-sm-5">
|
|
27
|
+
|
|
28
|
+
<div id="gauge2" class="200x160px"></div>
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class="inline" id="rotation_setpoint"> </div>
|
|
33
|
+
|
|
34
|
+
<script type="text/javascript">
|
|
35
|
+
|
|
36
|
+
smartinput ("rotation_setpoint", function(val) {
|
|
37
|
+
ui.setRotationSetpoint(val);
|
|
38
|
+
}, "Set (rpm)");
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<div class="btn-group btn-group-justified">
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
<script>
|
|
53
|
+
var g1 = new JustGage({
|
|
54
|
+
id: "gauge1",
|
|
55
|
+
value: 0,
|
|
56
|
+
min: 0,
|
|
57
|
+
max: 90,
|
|
58
|
+
title: "Temperature",
|
|
59
|
+
label: "° C"
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
var g2 = new JustGage({
|
|
63
|
+
id: "gauge2",
|
|
64
|
+
value: 0,
|
|
65
|
+
min: 0,
|
|
66
|
+
max: 1700,
|
|
67
|
+
title: "Rotation",
|
|
68
|
+
label: "rpm"
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
</script>
|
|
72
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
<div class="row-fluid clearfix" style="height: 160px;">
|
|
3
|
+
|
|
4
|
+
<div id="gauge1" class="span3 200x160px"></div>
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
<div id="gauge2" class="span3 200x160px"></div>
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<div id="gauge3" class="span3 200x160px"></div>
|
|
11
|
+
|
|
12
|
+
<div id="gauge4" class="span3 200x160px"></div>
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
<script>
|
|
18
|
+
var g1 = new JustGage({
|
|
19
|
+
id: "gauge1",
|
|
20
|
+
value: 0,
|
|
21
|
+
min: 10,
|
|
22
|
+
max: 280,
|
|
23
|
+
title: "Rotation",
|
|
24
|
+
label: "rpm"
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
var g2 = new JustGage({
|
|
28
|
+
id: "gauge2",
|
|
29
|
+
value: 0,
|
|
30
|
+
min: 20,
|
|
31
|
+
max: 210,
|
|
32
|
+
title: "HB - temperature",
|
|
33
|
+
label: "°C"
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
var g3 = new JustGage({
|
|
37
|
+
id: "gauge3",
|
|
38
|
+
value: 0,
|
|
39
|
+
min: 5,
|
|
40
|
+
max: 40,
|
|
41
|
+
title: "Ext. Sensor-Temperature",
|
|
42
|
+
label: "°C"
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
var g4 = new JustGage({
|
|
46
|
+
id: "gauge4",
|
|
47
|
+
value: 0,
|
|
48
|
+
min: 0,
|
|
49
|
+
max: 1200,
|
|
50
|
+
title: "Vacuum",
|
|
51
|
+
label: "mbar"
|
|
52
|
+
});
|
|
53
|
+
</script>
|
|
54
|
+
|