Details | Last modification | View Log | SVN | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1947 | runge | 1 | |
| 2 | Mbb_Clients = {}; |
||
| 3 | |||
| 4 | Mbb_Susbscribers = []; |
||
| 5 | |||
| 6 | function Mbb_SubscribeToDeviceStatus(callback) |
||
| 7 | { |
||
| 8 | Mbb_Susbscribers.push(callback); |
||
| 9 | } |
||
| 10 | |||
| 11 | function Mbb_Connected(client_id) |
||
| 12 | { |
||
| 13 | Log(client_id + " connected!"); |
||
| 14 | |||
| 15 | Mbb_Clients[client_id] = {}; |
||
| 16 | } |
||
| 17 | |||
| 18 | function Mbb_Disconnected(client_id) |
||
| 19 | { |
||
| 20 | Log(client_id + " disconnected!"); |
||
| 21 | |||
| 22 | for (var n = 0; n < Mbb_Susbscribers.length; n++) |
||
| 23 | { |
||
| 24 | Mbb_Susbscribers[n]("disconnected", Mbb_Clients[client_id]); |
||
| 25 | } |
||
| 26 | |||
| 27 | delete Mbb_Clients[client_id]; |
||
| 28 | } |
||
| 29 | |||
| 30 | function Mbb_ReceivedData(client_id, data) |
||
| 31 | { |
||
| 32 | var json_data = eval("(" + data + ")"); |
||
| 33 | |||
| 34 | //Log(JSON.stringify(json_data)); |
||
| 35 | |||
| 36 | if (json_data.method == "MBB.GpsNmeaData") |
||
| 37 | { |
||
| 38 | if (json_data.params.nmea.substr(0, 6) == "$GPGGA") |
||
| 39 | { |
||
| 40 | Mbb_Clients[client_id]["LastNmea"]["GGA"] = json_data.params.nmea; |
||
| 41 | } |
||
| 42 | else if (json_data.params.nmea.substr(0, 6) == "$GPRMC") |
||
| 43 | { |
||
| 44 | Mbb_Clients[client_id]["LastNmea"]["RMC"] = json_data.params.nmea; |
||
| 45 | |||
| 46 | for (var n = 0; n < Mbb_Susbscribers.length; n++) |
||
| 47 | { |
||
| 48 | Mbb_Susbscribers[n]("nmea", Mbb_Clients[client_id]); |
||
| 49 | } |
||
| 50 | |||
| 51 | Mbb_Clients[client_id]["LastNmea"]["GGA"] = ""; |
||
| 52 | Mbb_Clients[client_id]["LastNmea"]["RMC"] = ""; |
||
| 53 | } |
||
| 54 | } |
||
| 55 | else /*if (json_data.method == "MBB.Connected")*/ |
||
| 56 | { |
||
| 57 | json_data = { "params" : { "Imei" : "004401700721448" } }; |
||
| 58 | |||
| 59 | Log("Client " + client_id + " has IMEI " + json_data.params.Imei); |
||
| 60 | |||
| 61 | Mbb_Clients[client_id]["Id"] = client_id; |
||
| 62 | Mbb_Clients[client_id]["Info"] = json_data.params; |
||
| 63 | Mbb_Clients[client_id]["LastNmea"] = {}; |
||
| 64 | Mbb_Clients[client_id]["LastNmea"]["GGA"] = ""; |
||
| 65 | Mbb_Clients[client_id]["LastNmea"]["RMC"] = ""; |
||
| 66 | |||
| 67 | for (var n = 0; n < Mbb_Susbscribers.length; n++) |
||
| 68 | { |
||
| 69 | Mbb_Susbscribers[n]("connected", Mbb_Clients[client_id]); |
||
| 70 | } |
||
| 71 | } |
||
| 72 | /*else |
||
| 73 | { |
||
| 74 | Log("Got unknown data \"" + json_data + "\" from client " + client_id); |
||
| 75 | }*/ |
||
| 76 | } |
||
| 77 | |||
| 78 | function Mbb_SendData(client_id, json_data) |
||
| 79 | { |
||
| 80 | return MbbExport_SendData(client_id, JSON.Stringify(json_data)); |
||
| 81 | } |