
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.207] |
![]() |
|
Сообщ.
#1
,
|
|
|
В общем, на кпк есть порты COM. На одном из их может быть GPS. ВОт таким кодом я их перебираю:
![]() ![]() public void TestGPSConnections() { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; //это я поставил значок загруженности string[] lPorts = System.IO.Ports.SerialPort.GetPortNames(); //взял из кпк все порты имеющиеся в наличии String Portname="none"; //и для каждого порта foreach (string s in lPorts) { //глобальные переменные GPString = ""; //строка гпс MsgCount = 0; GpsStop = false; DataAvailable = false; try { label1.Text = "Тестируется порт "+s; Application.DoEvents(); serialPort1.Open(); timer1.Enabled = true; while (MsgCount < 10) { Application.DoEvents(); } timer1.Enabled = false; serialPort1.Close(); if (DataAvailable) Portname = s; } catch { } } if (Portname == "none") { MessageBox.Show("Не найдено GPS приемника"); } else { MessageBox.Show("Найден GPS приемник на порте "+Portname); comboBox1.Text = Portname; } System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { //эта функция принимает данные GPString = GPString + serialPort1.ReadExisting(); MsgCount++; ParseGPSData(); } public void ParseGPSData() { //эта их парсит и дает результ - данные являются ГПС или нет string[] s = GPString.Split('\n'); GPString = s[s.Length - 1]; int i = 0; foreach (string ss in s) { if (i == s.Length - 1) break; if (nmea(ss)) DataAvailable = true; i++; } } //это таймер. он на 1 секунду. Нужен потому что если порт открылся, но не передает данные, то MsgCOunt всегда будут=0 и программа будет в мертвом цикле private void timer1_Tick(object sender, EventArgs e) { MsgCount++; } Но таймер не работает. ВОобще. Т.е. открывается первый порт и висит на нем пока не перезагрузишь КПК =( ЧТо делать? |