Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  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. }
  82.