- function ws_onerror(event) {
- console.log("error " + event);
- sts.innerHTML = "error";
- }
- function ws_onclose(event) {
- console.log("close " + event);
- sts.innerHTML = "closed";
- imei.disabled = true;
- send.disabled = true;
- clear.disabled = true;
- setTimeout(open_ws, 5000);
+ // Set marker at the reported (last) location
+ const lonLat = new OpenLayers.LonLat(+msg.longitude,
+ +msg.latitude).transform(
+ new OpenLayers.Projection("EPSG:4326"),
+ map.getProjectionObject());
+ markers.addMarker(new OpenLayers.Marker(lonLat, icon));
+ map.setCenter(lonLat, 14);
+ }
+ function display_status(msg) {
+ console.log("status " + JSON.stringify(msg));
+ devstatus.innerHTML = "BAT: " + msg.battery;
+ }
+
+ function open_ws() {
+ wsurl = new URL("ws://localhost/");
+ wsurl.protocol = wsproto
+ wsurl.hostname = wshost
+ wsurl.port = wsport
+ console.log("wsurl is " + wsurl)
+ ws = new WebSocket(wsurl);
+ ws.onopen = ws_onopen;
+ ws.onmessage = ws_onmessage;
+ ws.onerror = ws_onerror;
+ ws.onclose = ws_onclose;
+ }
+ function ws_onopen(event) {
+ console.log("ws opened " + event);
+ sts.innerHTML = "online";
+ imei.disabled = false;
+ send.disabled = false;
+ clear.disabled = false;
+ sendIMEI();
+ }
+ function ws_onmessage(event) {
+ console.log("message " + event.data);
+ msg = JSON.parse(event.data);
+ if (msg.type === "location") {
+ set_marker(msg);
+ } else if (msg.type === "status") {
+ display_status(msg);