Beispiel #1
0
        public Dictionary <string, string> Read()
        {
            var    ret = new Dictionary <string, string>();
            string s;

            if (simulatormode)
            {
                s = "SIMULATORANDROID1";
                ret.Add("vin", s);
                foreach (var cmd in piDs.Keys)
                {
                    var key = piDs[cmd];
                    s = ObdExtension.GetEmulatorValue(cmd);
                    ret.Add(key, s);
                }
                return(ret);
            }

            if (!simulatormode && bluetoothSocket == null)
            {
                //if there is no connection
                return(null);
            }

            lock (_lock)
            {
                foreach (var key in data.Keys)
                {
                    ret.Add(key, data[key]);
                }
                foreach (var v in piDs.Values)
                {
                    data[v] = DefValue;
                }
            }
            return(ret);
        }
Beispiel #2
0
 private async void PollObd()
 {
     try
     {
         string s;
         if (simulatormode)
         {
             s = "SIMULATORIPHONE12";
         }
         else
         {
             s = await GetVIN();
         }
         lock (_lock)
         {
             data["vin"] = s;
         }
         while (true)
         {
             foreach (var cmd in piDs.Keys)
             {
                 var key = piDs[cmd];
                 if (simulatormode)
                 {
                     s = ObdExtension.GetEmulatorValue(cmd);
                 }
                 else
                 {
                     s = await RunCmd(cmd);
                 }
                 if (s != "ERROR")
                 {
                     lock (_lock)
                     {
                         data[key] = s;
                     }
                 }
                 if (!running)
                 {
                     return;
                 }
             }
             await Task.Delay(Interval);
         }
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.WriteLine(ex.Message);
         running = false;
         if (stream != null)
         {
             stream.Close();
             stream = null;
         }
         if (socket != null)
         {
             socket.Close();
             socket = null;
         }
     }
 }