|
NMEA информация с GPS, Как правильно считать и разобрать NMEA информацию |
|
|
|
Apr 13 2007, 14:23
|
Участник

Группа: Новичок
Сообщений: 17
Регистрация: 30-03-07
Пользователь №: 26 626

|
День добрый. У меня возникла проблема. Подключил ГПС приемник к компу. Открыл в Матлаб СОМ порт. Подключился к ГПС приемнику. Считал NMEA информацию. А как теперь ее разобрать? Чтоб выделить Широту, долготу, время? Листинг программы следующй:
%Create a serial port object. obj1 = instrfind('Type', 'serial', 'Port', 'COM3', 'Tag', '');
%Create the serial port object if it does not exist %otherwise use the object that was found. if isempty(obj1) obj1 = serial('COM3'); else fclose(obj1); obj1 = obj1(1) end
%Connect to instrument object, obj1. fopen(obj1);
%Read NMEA sequencies for i=1:100 data1 = fscanf(obj1); ID=sscanf(data1,'%6c',1) If ID == '$GPRMC' [UTC, Status, Latitude, NS, Longitude, EW, Speed, Course, Date, Magnetic, Mode]=strread(data1(8:end),'%s %s %s %s %s %s %s %s %s %s %s', 'delimiter',',') Time(i)=str2num(UTC(1:2)); Time(i)=Time(i)+str2num(UTC(3:4))/60; Time(i)=Time(i)+str2num(UTC(5:end))/3600; %Time(i)=Time(i)+str2num(UTC(5:9))/3600; Lat(i)=str2num(Latitude(1:2)); Lat(i)=Lat(i)+str2num(Latitude(3:end))/60; %Lat(i)=Lat(i)+str2num(Latitude(3:10))/60; if (NS == 'S')|(NS == 's') Lat(i)=-Lat(i); end Long(i)=str2num(Longitude(1:3)); Long(i)=Long(i)+str2num(Longitude(4:end))/60; %Long(i)=Long(i)+str2num(Longitude(4:11))/60; if (EW == 'W')|(EW == 'w') Long(i)=360-Long(i); end Vt(i)=str2num(Speed); Psi(i)=str2num(Course); end %Disconnect from instrument object, obj1. fclose(obj1);
%Clean up all objects. delete(obj1);
Но вот не работает код  После строки [UTC, Status, Latitude, NS, Longitude, EW, Speed, Course, Date, Magnetic, Mode]=strread(data1(8:end),'%s %s %s %s %s %s %s %s %s %s %s', 'delimiter',',')
вылезает ошибка. Index Exceed Matrix Dimension Когда я открыл переменную Status, то там было следующее: UTC = '182524' С ковычками!!!! А str2num не воспринимает строковую переменную в данном виде! Может кто подскажет в чем проблема и как выделить информацию из NMEA???
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|