Subversion Repositories HomeAutomation

Rev

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
}