Witam, zacznę od tego, że chciałem napisać małą aplikację która pobierze tylko współrzędne z odbiornika GPS.
Jestem posiadaczem nawigacji Manta GPS 420, dziś ją odblokowałem i na windowsa CE zainstalowałem CF 3.5 .
Przystąpiłem do pracy, lecz niewiele później spotkał mnie pierwszy poważny problem - mianowicie program nie czyta danych z odbiornika GPS. Program nie odczytuje jakichkolwiek danych (i to mnie martwi) , zazwyczaj MapaMap pokazuje dostęp do 3 satelit, sekrety życia w bloku (nawet przy oknie :/). Mapamap również nie pokazuje aktualnej pozycji, ale logicznie rzecz biorąc - skoro mamy już 3 satelity, to jakieś dane muszą do nas docierać, a program (mapamap) pewnie sam wyciąga średnią z kilku nadajników.
Spore kłopoty miałem również z ustaleniem portu i do dziś go nie znam :/ Sprawa jest dość "dziwna" bo AutoMapa wskazuje COM7. W rejestrze systemowym nic nie ma zapisane, jedynie to, że GPS jest na porcie COM i jakaś wartość Index = 7 tam też występuje.
Postanowiłem zrobić bardzo krótki program czyli :
for(int i=1;i<9;i++)
{
try
{
port.PortName = ("COM" + i);
port.Open();
listBox1.Items.Add("Port :" + i + ": został pomyślnie otwarty");
port.Close();
}
catch (Exception)
{
listBox1.Items.Add("Port :" + i + "nie może zostać otwart !");
port.Close();
}
}
Wyniki są następujące : COM1, COM2, COM6 są cały czas otwarte. Gdy system złapie sygnał z jakiegoś nadajnika, automatycznie otwierany zostaje port COM5.
Tutaj przedstawię kod, którym próbuję pobrać informacje od odbiornika :
int dostepne = port.BytesToRead;
byte[] buffer = new byte[dostepne];
port.Read(buffer, 0, dostepne);
string data = Encoding.UTF8.GetString(buffer, 0, dostepne);
listBox1.Items.Add(data);
Thread.Sleep(500);
próbowałem także z różnymi ustawieniami port np.
port.BaudRate = 4800;
port.DataBits = 8;
Jako, że program do "testowania" portów jest napisany w stylu otwarty <> zamknięty, próbowałem także pobrać dane z COMa, który może być otwarty (kończyło się crashem aplikacji).