+ // 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 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);
+ set_marker(JSON.parse(event.data));
+ }
+ function ws_onerror(event) {
+ console.log("error " + event);
+ sts.innerHTML = "error: " + event;
+ }
+ function ws_onclose(event) {
+ console.log("close " + event);
+ sts.innerHTML = "offline";
+ imei.disabled = true;
+ send.disabled = true;
+ clear.disabled = true;
+ setTimeout(open_ws, 5000);
+ }
+
+ function sendIMEI(do_clear) {
+ if (do_clear) {
+ imeis.clear();
+ } else {