private void checkBoxGpsStartStop_CheckedChanged(object sender, EventArgs e) { if (checkBoxGpsStartStop.Checked) { checkBoxGpsStartStop.Text = "Stop"; GpsSimulationInfo info = new GpsSimulationInfo(); info.Interval = int.Parse(textBoxGpsInterval.Text) * 1000; // seconds info.Type = comboBoxGpsType.SelectedIndex; SmartMonitorSystem.Instance.StartGpsSimulation(info); } else { SmartMonitorSystem.Instance.StopGpsSimulation(); checkBoxGpsStartStop.Text = "Start"; } }
public void StartGpsSimulation(GpsSimulationInfo info) { if (info == null) { return; } GpsInfo = info; GpsInfo.Running = true; Task.Run(async() => { int counter = 0; while (GpsInfo.Running) { GpsMessage msg = new GpsMessage(); msg.Id = msgcounter.ToString(); msg.DeviceId = deviceId; if (counter < GpsInfo.Country.Count) { msg.Latitude = GpsInfo.Country[counter].Latitude; msg.Longitude = GpsInfo.Country[counter].Longitude; msgSendQueue.Enqueue(msg); counter++; } else { counter = 0; } await Task.Delay(GpsInfo.Interval); msgcounter++; } }); }