View Issue Details

IDProjectCategoryView StatusLast Update
0001018SAS.ПланетаХотелка / Feature requestpublic10-10-2012 11:49
Reportervasketsov Assigned Tovasketsov  
PrioritynormalSeveritymajorReproducibilityN/A
Status closedResolutionfixed 
PlatformWindowsOSVistaOS VersionUltimate
Product Version.Nightly 
Target Version120808Fixed in Version120808 
Summary0001018: Переписан способ коммуникации с приёмниками GPS
DescriptionИтак, пока что только EXE-ха для тестирования.
Старый компонент выкинут за ненадобностью.
Основная новая возможность с точки зрения юзера - подключение к приёмникам Garmin по USB.
Не менее основная новая возможность с точки зрения разработчика - код для подключения по NMEA-0183 к GPS-приёмникам на COMx.
Небольшие бонусы в виде дополнительных счётчиков HDOP, VDOP, UTC Time и Local Time.
Вроде бы устранился косяк с нулевыми начальными координатами и семью тыщами км на одометре в нерезиновске.

Тестить надо яростно, и все новые возможности. Я сначала писал без использования TThread вообще на голом Native NT API (там многие используемые вещи проще делаются, изначально ыла идея написать коннектор к GPS в виде отдельной DLL из-за боязни большого размера кода), потом переписывал кусками на Win32, потом один из потоков переписал на TThread. Поэтому прошу отнестись с пониманием, что косяки там есть. Только я уже совсем зашорился и перестал их отлавливать.

В форкнутое репо код для созерцания залью чуть позже.
Tagsgarmin, gps
Attached Files
sas_garmin_usb.png (48,821 bytes)   
sas_garmin_usb.png (48,821 bytes)   
IMG0315A.jpg (454,604 bytes)
sas_gps.png (49,208 bytes)   
sas_gps.png (49,208 bytes)   
21-10-2011.log (4,459 bytes)
24-10.log (4,447 bytes)
24-10.png (48,954 bytes)   
24-10.png (48,954 bytes)   
262.png (98,285 bytes)   
262.png (98,285 bytes)   
25-10.txt (4,458 bytes)   
CREATED
CONNECTED
SESSION STARTED
GET PROTOCOLS
COORD: signal
ANOTHER EMPTY: (Packet_Type=224, Packet_ID=47840)
COORD: signal
ANOTHER EMPTY: (Packet_Type=216, Packet_ID=47576)
COORD: signal
DONE PROTOCOLS
DEV_INFO: Product_ID=896, Software_version=450
Oregon 550 Patched Version 4.50
VERBMAP Worldwide Autoroute DEM Basemap, NR 4.00
VERSMAP ������ ������. ��. ����. ����� 6.07. 0.00
VERTZMAP Time Zone Map 7.00
VERSMAP1 \N{BOX DRAWINGS DOUBLE UP AND HORIZONTA, ���������
VERGPROM None
VERDEMO Demo Not Found
VERGPI None
Oregon 550 Patched Version 4.50
VERBMAP Worldwide Autoroute DEM Basemap, NR 4.00
VERSMAP ������ ������. ��. ����. ����� 6.07. 0.00
VERTZMAP Time Zone Map 7.00

PROTOCOLS:
P000
L001
A010
T001
A301
D312
D302
A500
D501
A600
D600
A601
D601
A700
D700
A800
D800
A900
A902
A903
A904
A905
D900
A908
D911
A912
D912
A913
D913
A916
A917
D917
A919
A1010
A918
D918

Unit_ID=3749751379
API_Version=1
USB_Packet_Size=512
GET PVT
ANOTHER EMPTY: (Packet_Type=216, Packet_ID=47320)
COORD: signal
COORD: Abort_Transfer
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=12, snr=1447, elev=82, azmth=56, status=21
svid=9, snr=2041, elev=29, azmth=184, status=21
svid=29, snr=1690, elev=31, azmth=254, status=21
svid=2, snr=65436, elev=61, azmth=99, status=20
svid=4, snr=65436, elev=29, azmth=50, status=20
svid=5, snr=65436, elev=4, azmth=134, status=20
svid=10, snr=65436, elev=13, azmth=83, status=20
svid=14, snr=65436, elev=11, azmth=278, status=20
svid=25, snr=65436, elev=57, azmth=308, status=20
svid=30, snr=65436, elev=0, azmth=303, status=20
svid=31, snr=65436, elev=8, azmth=326, status=20
svid=27, snr=65436, elev=0, azmth=0, status=4
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=#, v_err=#, alt=1,28)
(lon=38,981373, lat=45,047656, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47432)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=12, snr=1361, elev=82, azmth=56, status=21
svid=9, snr=2230, elev=29, azmth=184, status=21
svid=29, snr=1690, elev=31, azmth=254, status=21
svid=2, snr=65436, elev=61, azmth=99, status=20
svid=4, snr=65436, elev=29, azmth=50, status=20
svid=5, snr=65436, elev=4, azmth=134, status=20
svid=10, snr=65436, elev=13, azmth=83, status=20
svid=14, snr=65436, elev=11, azmth=278, status=20
svid=25, snr=65436, elev=57, azmth=308, status=20
svid=30, snr=65436, elev=0, azmth=303, status=20
svid=31, snr=65436, elev=8, azmth=326, status=20
svid=27, snr=65436, elev=0, azmth=0, status=4
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=#, v_err=#, alt=1,28)
(lon=38,981373, lat=45,047656, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47432)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=12, snr=1230, elev=82, azmth=56, status=21
svid=9, snr=2217, elev=29, azmth=184, status=21
svid=29, snr=1690, elev=31, azmth=254, status=21
svid=2, snr=65436, elev=61, azmth=99, status=20
svid=4, snr=65436, elev=29, azmth=50, status=20
svid=5, snr=65436, elev=4, azmth=134, status=20
svid=10, snr=65436, elev=13, azmth=83, status=20
svid=14, snr=65436, elev=11, azmth=278, status=20
svid=25, snr=65436, elev=57, azmth=308, status=20
svid=30, snr=65436, elev=0, azmth=303, status=20
svid=31, snr=65436, elev=8, azmth=326, status=20
svid=27, snr=65436, elev=0, azmth=0, status=4
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=#, v_err=#, alt=1,28)
(lon=38,981373, lat=45,047656, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47432)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=12, snr=954, elev=82, azmth=56, status=21
svid=9, snr=2181, elev=29, azmth=184, status=21
svid=29, snr=1681, elev=31, azmth=254, status=21
svid=2, snr=65436, elev=61, azmth=99, status=20
svid=4, snr=65436, elev=29, azmth=50, status=20
svid=5, snr=65436, elev=4, azmth=134, status=20
svid=10, snr=65436, elev=13, azmth=83, status=20
svid=14, snr=65436, elev=11, azmth=278, status=20
svid=25, snr=65436, elev=57, azmth=308, status=20
svid=30, snr=65436, elev=0, azmth=303, status=20
svid=31, snr=65436, elev=8, azmth=326, status=20
svid=27, snr=65436, elev=0, azmth=0, status=4
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=#, v_err=#, alt=1,28)
(lon=38,981373, lat=45,047656, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
DONE PVT
DISCONNECTED
Press ENTER to close
25-10.txt (4,458 bytes)   
25-10-2011.png (51,188 bytes)   
25-10-2011.png (51,188 bytes)   
26-10-2011.png (49,483 bytes)   
26-10-2011.png (49,483 bytes)   
26-10.log (4,423 bytes)
SASPlanet_05.zip (2,182,858 bytes)
7112011.png (50,665 bytes)   
7112011.png (50,665 bytes)   
7112011.txt (4,447 bytes)   
CREATED
CONNECTED
SESSION STARTED
GET PROTOCOLS
COORD: signal
ANOTHER EMPTY: (Packet_Type=224, Packet_ID=47840)
COORD: signal
ANOTHER EMPTY: (Packet_Type=216, Packet_ID=47576)
COORD: signal
DONE PROTOCOLS
DEV_INFO: Product_ID=896, Software_version=450
Oregon 550 Patched Version 4.50
VERBMAP Worldwide Autoroute DEM Basemap, NR 4.00
VERSMAP None
VERTZMAP Time Zone Map 7.00
VERSMAP1 \N{BOX DRAWINGS DOUBLE UP AND HORIZONTA, ���������
VERGPROM None
VERDEMO Demo Not Found
VERGPI None
Oregon 550 Patched Version 4.50
VERBMAP Worldwide Autoroute DEM Basemap, NR 4.00
VERSMAP None
VERTZMAP Time Zone Map 7.00

PROTOCOLS:
P000
L001
A010
T001
A301
D312
D302
A500
D501
A600
D600
A601
D601
A700
D700
A800
D800
A900
A902
A903
A904
A905
D900
A908
D911
A912
D912
A913
D913
A916
A917
D917
A919
A1010
A918
D918

Unit_ID=3749751379
API_Version=1
USB_Packet_Size=512
GET PVT
ANOTHER EMPTY: (Packet_Type=216, Packet_ID=47320)
COORD: signal
COORD: Abort_Transfer
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=14, snr=1949, elev=65, azmth=107, status=21
svid=3, snr=3027, elev=27, azmth=200, status=21
svid=32, snr=1740, elev=32, azmth=257, status=21
svid=6, snr=2423, elev=22, azmth=188, status=21
svid=1, snr=65436, elev=25, azmth=305, status=20
svid=9, snr=65436, elev=10, azmth=36, status=20
svid=11, snr=65436, elev=43, azmth=300, status=20
svid=18, snr=65436, elev=12, azmth=70, status=20
svid=19, snr=65436, elev=54, azmth=233, status=20
svid=20, snr=65436, elev=4, azmth=259, status=20
svid=22, snr=65436, elev=51, azmth=62, status=20
svid=24, snr=65436, elev=40, azmth=303, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=2, h_err=77,5, v_err=22,7, alt=7,87)
(lon=38,981827, lat=45,048083, heading=47)
(full_speed=13,4 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47432)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=3, snr=3014, elev=27, azmth=200, status=21
svid=32, snr=1748, elev=32, azmth=257, status=21
svid=6, snr=2426, elev=22, azmth=188, status=21
svid=1, snr=65436, elev=25, azmth=305, status=20
svid=9, snr=65436, elev=10, azmth=36, status=20
svid=11, snr=65436, elev=43, azmth=300, status=20
svid=14, snr=65436, elev=65, azmth=107, status=20
svid=18, snr=65436, elev=12, azmth=70, status=20
svid=19, snr=65436, elev=54, azmth=233, status=20
svid=20, snr=65436, elev=4, azmth=259, status=20
svid=22, snr=65436, elev=51, azmth=62, status=20
svid=24, snr=65436, elev=40, azmth=303, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=2, h_err=78,1, v_err=22,7, alt=7,88)
(lon=38,981858, lat=45,048107, heading=46)
(full_speed=13,5 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47432)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=3, snr=3001, elev=27, azmth=200, status=21
svid=32, snr=1770, elev=32, azmth=257, status=21
svid=6, snr=2436, elev=22, azmth=188, status=21
svid=1, snr=65436, elev=25, azmth=305, status=20
svid=9, snr=65436, elev=10, azmth=36, status=20
svid=11, snr=65436, elev=43, azmth=300, status=20
svid=14, snr=65436, elev=65, azmth=107, status=20
svid=18, snr=65436, elev=12, azmth=70, status=20
svid=19, snr=65436, elev=54, azmth=233, status=20
svid=20, snr=65436, elev=4, azmth=259, status=20
svid=22, snr=65436, elev=51, azmth=62, status=20
svid=24, snr=65436, elev=40, azmth=303, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=2, h_err=78,7, v_err=22,7, alt=7,89)
(lon=38,98189, lat=45,04813, heading=45)
(full_speed=13,4 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47432)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=3, snr=2985, elev=27, azmth=200, status=21
svid=32, snr=1755, elev=32, azmth=257, status=21
svid=6, snr=2418, elev=22, azmth=188, status=21
svid=1, snr=65436, elev=25, azmth=305, status=20
svid=9, snr=65436, elev=10, azmth=36, status=20
svid=11, snr=65436, elev=43, azmth=300, status=20
svid=14, snr=65436, elev=65, azmth=107, status=20
svid=18, snr=65436, elev=12, azmth=70, status=20
svid=19, snr=65436, elev=54, azmth=233, status=20
svid=20, snr=65436, elev=4, azmth=259, status=20
svid=22, snr=65436, elev=51, azmth=62, status=20
svid=24, snr=65436, elev=40, azmth=303, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=2, h_err=79,3, v_err=22,7, alt=7,9)
(lon=38,981923, lat=45,048153, heading=42)
(full_speed=13,4 km/h, v_speed=0 m/s)
DONE PVT
DISCONNECTED
Press ENTER to close
7112011.txt (4,447 bytes)   
7112011_1.png (51,084 bytes)   
7112011_1.png (51,084 bytes)   
7112011_1.txt (4,292 bytes)   
CREATED
CONNECTED
SESSION STARTED
GET PROTOCOLS
COORD: signal
ANOTHER EMPTY: (Packet_Type=224, Packet_ID=47840)
COORD: signal
ANOTHER EMPTY: (Packet_Type=216, Packet_ID=47576)
COORD: signal
DONE PROTOCOLS
DEV_INFO: Product_ID=896, Software_version=450
Oregon 550 Patched Version 4.50
VERBMAP Worldwide Autoroute DEM Basemap, NR 4.00
VERSMAP None
VERTZMAP Time Zone Map 7.00
VERSMAP1 \N{BOX DRAWINGS DOUBLE UP AND HORIZONTA, ���������
VERGPROM None
VERDEMO Demo Not Found
VERGPI None

PROTOCOLS:
P000
L001
A010
T001
A301
D312
D302
A500
D501
A600
D600
A601
D601
A700
D700
A800
D800
A900
A902
A903
A904
A905
D900
A908
D911
A912
D912
A913
D913
A916
A917
D917
A919
A1010
A918
D918

Unit_ID=3749751379
API_Version=1
USB_Packet_Size=512
GET PVT
ANOTHER EMPTY: (Packet_Type=88, Packet_ID=47448)
COORD: signal
COORD: Abort_Transfer
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=3, snr=2986, elev=20, azmth=197, status=21
svid=19, snr=1991, elev=48, azmth=224, status=21
svid=32, snr=1995, elev=38, azmth=263, status=21
svid=6, snr=2262, elev=15, azmth=186, status=21
svid=20, snr=1690, elev=10, azmth=263, status=20
svid=1, snr=65436, elev=31, azmth=306, status=20
svid=9, snr=65436, elev=8, azmth=30, status=20
svid=11, snr=65436, elev=50, azmth=297, status=20
svid=14, snr=65436, elev=65, azmth=88, status=20
svid=18, snr=65436, elev=6, azmth=74, status=20
svid=22, snr=65436, elev=44, azmth=66, status=20
svid=24, snr=65436, elev=46, azmth=305, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=85,9, v_err=22,7, alt=7,99)
(lon=38,983736, lat=45,048412, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47688)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=3, snr=2982, elev=20, azmth=197, status=21
svid=19, snr=1991, elev=48, azmth=224, status=21
svid=32, snr=1986, elev=38, azmth=263, status=21
svid=6, snr=2257, elev=15, azmth=186, status=21
svid=20, snr=1681, elev=10, azmth=263, status=20
svid=1, snr=65436, elev=31, azmth=306, status=20
svid=9, snr=65436, elev=8, azmth=30, status=20
svid=11, snr=65436, elev=50, azmth=297, status=20
svid=14, snr=65436, elev=65, azmth=88, status=20
svid=18, snr=65436, elev=6, azmth=74, status=20
svid=22, snr=65436, elev=44, azmth=66, status=20
svid=24, snr=65436, elev=46, azmth=305, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=85,9, v_err=22,7, alt=7,99)
(lon=38,983736, lat=45,048412, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47688)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=3, snr=2956, elev=20, azmth=197, status=21
svid=19, snr=1973, elev=48, azmth=224, status=21
svid=32, snr=1991, elev=38, azmth=263, status=21
svid=6, snr=2269, elev=15, azmth=186, status=21
svid=20, snr=1716, elev=10, azmth=263, status=20
svid=1, snr=65436, elev=31, azmth=306, status=20
svid=9, snr=65436, elev=8, azmth=30, status=20
svid=11, snr=65436, elev=50, azmth=297, status=20
svid=14, snr=65436, elev=65, azmth=88, status=20
svid=18, snr=65436, elev=6, azmth=74, status=20
svid=22, snr=65436, elev=44, azmth=66, status=20
svid=24, snr=65436, elev=46, azmth=305, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=85,9, v_err=22,7, alt=7,99)
(lon=38,983736, lat=45,048412, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
ANOTHER EMPTY: (Packet_Type=72, Packet_ID=47688)
COORD: signal
(Measurements Data_Size = 84 BASE)
svid=3, snr=2957, elev=20, azmth=197, status=21
svid=19, snr=1949, elev=48, azmth=224, status=21
svid=32, snr=1977, elev=38, azmth=263, status=21
svid=6, snr=2252, elev=15, azmth=186, status=21
svid=20, snr=1707, elev=10, azmth=263, status=20
svid=1, snr=65436, elev=31, azmth=306, status=20
svid=9, snr=65436, elev=8, azmth=30, status=20
svid=11, snr=65436, elev=50, azmth=297, status=20
svid=14, snr=65436, elev=65, azmth=88, status=20
svid=18, snr=65436, elev=6, azmth=74, status=20
svid=22, snr=65436, elev=44, azmth=66, status=20
svid=24, snr=65436, elev=46, azmth=305, status=20
(D800_Pvt Data_Size = 64 BASE)
(fix=1, h_err=85,9, v_err=22,7, alt=7,99)
(lon=38,983736, lat=45,048412, heading=0)
(full_speed=0 km/h, v_speed=0 m/s)
DONE PVT
DISCONNECTED
Press ENTER to close
7112011_1.txt (4,292 bytes)   

Activities

vasketsov

20-10-2011 21:32

manager   ~0004128

забыл добавить - лог в формате nmea пишется ТОЛЬКО для COM NMEA. бай дизайн.

Garl

21-10-2011 08:20

manager   ~0004131

а так и должно не показывать активные и видимые спутники?
а то непонятно видит программа приёмник или нет.

vasketsov

21-10-2011 08:39

manager   ~0004132

Last edited: 21-10-2011 08:44

Вообще-то должно показывать как и раньше.
Хотя бы так как на приаттаченной картинке.

Время со спутника доступно даже если координаты совсем кривые, так что если на панель датчиков вывести датчик времени, и он будет менять значение, значит приёмник доступен. С кнопкой подключения на панели инструментов там какая-то беда бывает, приёмник недоступен, а она не отлипает (даже зависит от того, поелозить над ней мышкой или нет), по состоянию кнопки нельзя определять. Но как бы цели полечить её не было, поэтому вот.

Garl

21-10-2011 09:02

manager   ~0004133

видимы 2 спутника, а зелёными подсвечиваются все. так и надо?

vasketsov

21-10-2011 09:14

manager   ~0004134

Это скорее всего из-за значения SNR (signal-noise-ratio).
В отличие от NMEA (до 100), у Garmin-а там значения могут достигать офигенного количества тыщ. Так что чтобы уложить их в прежние полоски, пришлось их целочисленно поделить на 40. Скорее всего прочие спутники имеют очень небольшое значение snr, скорее всего из-за очень ограниченной области доступности неба. Короче говоря, есть подозрение, что эти 2 спутника пробились к тебе напрямую через окно, а остальные пробуют стучаться через двери и стены.
В любом случае признак "зелёности" получается непосредственно с устройства, то есть, "ему можно верить".

Garl

21-10-2011 09:17

manager   ~0004135

Last edited: 21-10-2011 09:18

ну да, кабель еле-еле дотягивается до окошка. в окно видно только 2 спутника. остальное отражёнка.

bk99

21-10-2011 10:32

reporter   ~0004136

>В любом случае признак "зелёности" получается непосредственно с устройства, то есть, "ему можно верить".

Я правильно понимаю, что:
1. зелёных кружочков всегда > или = зелёных столбиков;
2. наоборот не бывает;
3. верим зелёным кружочкам (которых всегда больше).

vdemidov

21-10-2011 11:10

manager   ~0004137

Зеленый цвет обозначает, что данные спутника используются при определении текущей позиции.
По задумке зеленых кружочков всегда должно быть столько же сколько зеленых столбиков. Если это не так значит вопрос к коду который получает данные от GPS.

vasketsov

21-10-2011 11:39

manager   ~0004138

Last edited: 21-10-2011 11:41

Список "зелёных" спутников напрямую получается с устройства. Для любого протокола. Никто в этот список не влазит, по крайней мере намеренно, ибо это бессмысленно. Поэтому однозначно верим зелёным кружочкам.

Зелёные полоски рисуются руками. По существующей логике диапазон snr для nmea всего сто (100).Чтобы попасть в этот диапазон, мне пришлось поделить значение snr на 40. Если я его делил на 32 - всё равно вылазило у некоторых спутников выше верхнего края полосок. А теперь предлагаю подумать, какой высоты будет на экране полоса для спутника с snr равным например 80, если общая высота полосок скажем 200 пикселей. Впрочем, тут можно поиграться порядком выполнения операций, сначала привести к сотне, а потом округлить до целого. Погляжу что получится. Ещё как вариант - определять максимальное значение для конкретного набора спутников, то есть, отображать только относительную величину snr.

Чтобы увидеть мелкие полоски, надо растянуть полоски по вертикали. Например, на вертикальной панели с датчиками включить датчик уровня сигнала и поместить его самым последним, чтобы он занял всю высоту. Тогда снизу есть шанс увидеть нужные нанополоски.

vdemidov

21-10-2011 12:32

manager   ~0004139

Что-то я сомневаюсь. Скорее всего все кроме двух должны быт желтыми. Ну не могут быть все спутники нормально зафиксированными.

bk99

21-10-2011 12:40

reporter   ~0004140

На мой взгляд, полоски надо просто убрать, и непоняток будет меньше. Полоски не несут никакой смысловой нагрузки, а цифирки и так уже в кружках отображаются.

Garl

21-10-2011 13:01

manager   ~0004141

цифры в кружочках - номера спутников, а полоски - уровень сигнала.

vdemidov

21-10-2011 13:08

manager   ~0004142

Все зелененькие спутники это еще менее информативная картинка. Такого практически не бывает. Тем более Garl, говорит, что реально видно только 2 спутника. Значит остальные должны быть желтыми.

vdemidov

21-10-2011 13:10

manager   ~0004143

Кстати. Спутник с Id 255 это тоже баг. Там только до 32 может быть нумерация.

Garl

21-10-2011 13:15

manager   ~0004144

приложил 2 скриншота :)

vdemidov

21-10-2011 13:27

manager   ~0004145

Вот именно. Итого 2 спутника должны быть зелеными, 3 желтыми, а все остальные красными. А мы что видим? Все зеленые.

Garl

21-10-2011 13:28

manager   ~0004146

ну на самом апарате 2 постоянно горит зелёным и 3 мигают из зелёного в белый. (по идее плохие условия приёма)

vasketsov

21-10-2011 13:43

manager   ~0004147

>не могут быть все спутники нормально зафиксированными
1. Если речь про гармин на скриншоте, то snr и прочее можно поглядеть в прожке, которую я выкладывал в теме про прямую поддержку гармина.
2. Таки да, не могут. Но это не исключает "ошибочные" данные с самого устройства.
3. Конкретно Garl выкладывал результат выполнения той прожки в режиме игры в прятки со спутниками - сейчас гляну что там за параметры были
4. От греха подальше можно вообще выводить значение snr вместо полосок. Хотя на панели датчиков полоски очень уместны (по крайней мере пока на этой панели не появится картинка неба и спутников как в настройках).

Garl

21-10-2011 13:47

manager   ~0004148

приложил лог (3 зелёных 1 моргающий)

vasketsov

21-10-2011 13:57

manager   ~0004149

Last edited: 21-10-2011 14:03

>приложил 2 скриншота :)
Спасибо, я допёр в чём беда. Вот результат:
svid=29, snr=2834, elev=38, azmth=260, status=21
svid=9, snr=3576, elev=20, azmth=183, status=21
svid=5, snr=1924, elev=10, azmth=128, status=20
svid=2, snr=65436, elev=62, azmth=92, status=20
svid=4, snr=65436, elev=22, azmth=46, status=20
svid=10, snr=65436, elev=16, azmth=75, status=20
svid=12, snr=65436, elev=77, azmth=99, status=20
svid=14, snr=65436, elev=6, azmth=270, status=20
svid=25, snr=65436, elev=64, azmth=309, status=20
svid=30, snr=65436, elev=18, azmth=306, status=20
svid=31, snr=65436, elev=15, azmth=323, status=20
svid=27, snr=65436, elev=0, azmth=0, status=4
Статус (двоичное) 20 = 10100 и 21 = 10101
Описание протокола:
0 - The unit has ephemeris data for the specified satellite
1 - The unit has a differential correction for the specified satellite
2 - The unit is using this satellite in the solution
Резюме - косяк в реализации протокола, ума не приложу, как может быть 2 без 0.
Значит будем проверять биты 0 и 2 вместе.
Ща поправлю и выложу версию 02.

>Спутник с Id 255 это тоже баг
Угу.

bk99

21-10-2011 14:01

reporter   ~0004150

>цифры в кружочках - номера спутников, а полоски - уровень сигнала

А что мне даёт знание уровня сигнала? Мне важно только - активный спутник или нет. Только "Да" или "Нет". И это уже реализовано - цвет кружков. => Полоски убрать!

Если уж совсем неймётся, то сделать цвет кружков как градацию зелёного - чем светлее, тем уровень сигнала меньше.

Garl

21-10-2011 14:02

manager   ~0004151

ну незнаю активен\неактивен конечно хорошо, но малоинформативно
уровни сигналов таки нужны чтоб определиться высовываться из окна дальше или и так сойдёт :)

bk99

21-10-2011 14:54

reporter   ~0004152

>уровни сигналов таки нужны чтоб определиться высовываться из окна дальше или и так сойдёт

Канеш высовываться! Я тебе это и так скажу, без всякого знания уровня! :)

vasketsov

21-10-2011 17:04

manager   ~0004153

>А что мне даёт знание уровня сигнала?
Например, надо ли достать блютусный приёмник из бардачка или нет.

Garl

21-10-2011 18:06

manager   ~0004154

ну я только в понедельник проверю и отпишусь.

Garl

24-10-2011 08:56

manager   ~0004169

Жёлтеньких не появилось

vasketsov

24-10-2011 12:29

manager   ~0004170

Last edited: 25-10-2011 00:48

Я таки получил на своём относительно стареньком 76-м статусы как у Garl. И даже больше :) Удалось это сделать включением (руками) на приёмнике опции не простого GPS, а WAAS/EGNOS. Вот пример информации о спутнике:
svid=16, snr=4230, elev=45, azmth=280, status=23
23 = 10111 - и тут я немного прифигел, ибо всегда думал, что в РФ эта штука не работает (блютусный сирф3 на моей памяти никогда дифф.поправки не выдавал), а тут девайс выдаёт все 3 начальных бита включёнными (21 тоже есть). Правда прошло несколько минут - все 23 пропали, вместо них везде 21 (без дифф. поправок).

Вроде бы все озвученные косяки устранены. Дополнительно сделан автодетектор ком-портов (по категории портов, чтобы искалось быстрее и ложных срабатываний было меньше) и включение/отключение gps из настроек (а то я зае..ся открывать/закрывать форму настроек). Версия 03. Из недоделок - не синхронизировано состояние кнопок в настройках gps с кнопкой включения/выключени gps на панели инструментов (исправлю пока версию 03 дрючите).

Garl

25-10-2011 07:50

manager   ~0004174

может переводить спутник с которого были данные и сейчас он недоступен в "жёлтый цвет" ?

vasketsov

25-10-2011 08:09

manager   ~0004175

Last edited: 25-10-2011 08:14

Жёлтый - спутник в принципе доступен, но не участвует в принятии решения.
Красный - спутник виден, но недоступен (из-за "нулевого" сигнала или если его номер не определён или статус "плохой", статусы см. выше).

Данные для раскраски - номер спутника, snr и список "фиксированных" получаются с устройства. В этом смысле если устройство (условно) говорит "красный" - почему и как долго ещё надо говорить "жёлтый"? Или я вопрос не понял? Эти статусы они по сути и есть ТЕКУЩИЕ данные. Надо отдельный признак, что спутник в течение этой сессии был "зелёным"?

А, вопрос почему 25 и 12 перепутались на картинках? Хороший вопрос )

Garl

25-10-2011 08:11

manager   ~0004176

дык у меня нету жёлтых спутников. так и надо? приложения выше

vasketsov

25-10-2011 08:22

manager   ~0004177

Last edited: 25-10-2011 08:27

В плане цвета - всё вполне корректно:
svid=12, snr=1230, elev=82, azmth=56, status=21
svid=9, snr=2217, elev=29, azmth=184, status=21
svid=29, snr=1690, elev=31, azmth=254, status=21
Это были три имеющихся "зелёных" спутника. У них всё в норме.

svid=2, snr=65436, elev=61, azmth=99, status=20
svid=4, snr=65436, elev=29, azmth=50, status=20
svid=5, snr=65436, elev=4, azmth=134, status=20
svid=10, snr=65436, elev=13, azmth=83, status=20
svid=14, snr=65436, elev=11, azmth=278, status=20
svid=25, snr=65436, elev=57, azmth=308, status=20
svid=30, snr=65436, elev=0, azmth=303, status=20
svid=31, snr=65436, elev=8, azmth=326, status=20
svid=27, snr=65436, elev=0, azmth=0, status=4
Это были недоступные спутники - они "красные". Ибо snr меньше нуля (как двухбайтовое число со знаком). В общем-то эта логика была всегда в отрисовке "палочек" и "неба".

Другой вопрос - что делать при положительном snr - ибо тогда есть определённое противоречие с логикой и спецификациями гармина (см. выше про биты статуса). Но в этом случае без вариантов "красные". Или хочется дополнительный цвет сделать для snr<0 и "сомнительно-положительного" статуса?

Кстати, автодетект работает только по ком-портам. Если юзать исключительно гармин, все прочие автодетектные галочки можно отключить. Всё равно при включённой гарминовской галочке подключение будет именно к нему.

Garl

25-10-2011 08:29

manager   ~0004178

пока не могу отловить мигающий на приборе спутник (вот он по идее должен быть жёлтым)
с другой стороны и так уже хорошо. На приборе ж тоже или зелёный или нет.

vasketsov

25-10-2011 10:21

manager   ~0004179

Last edited: 25-10-2011 10:25

у меня "мигающий" соответствует как раз статусу 20 (или 4 без WAAS).
"жёлтый" - незакрашенная полоска.
"зелёный" - закрашенная.
то есть "мигание" - перед "жёлтым".

а нет, наврал, прибор честно по битам включает или отключает зарисовку полосок и мигание (соответственно биты 2-й и 0-й).

vasketsov

25-10-2011 22:05

manager   ~0004181

Выложена SASPlanet_04.zip. В принципе с технической стороны вопроса уже близко к итоговому результату.
Комментарии:
1. Гарминовские статусы, когда спутник без эфемерид используется для принятия решения, сделал отдельным workaround-ом. Чтобы не нарушать здравую логику, зелёными для гармина считаются спутники с начальными битами 101 (то есть если спутник используется для принятия решения и есть эфемериды). Если же спутник имеет статус 20 (двоичное 10100) или 4 (двоичное 100) - (то есть с точки зрения гармина он нормальный для использования при принятии решения, а с точки зрения логики - не совсем) - будет этакий почти зелёненький, цвет соответствует синенькой окантовке полоски с силой сигнала. На панели датчиков ничего не меняется. Для NMEA ничего не меняется.
2. Напрочь больше не используется второй параметр из настроек gps, задержка в миллисекундах. Пока оставлен, вдруг я чё-то совсем не догоняю.
3. Не могу придумать, как (то есть где именно) лучше отобразить следующую информацию (и надо ли вообще это):
а) реально используемый порт при автоопределении COM-порта при подключении;
б) человеческое имя девайса, к которому выполнено подключение.
4. Исправлена ещё парочка мелких косяков в парсере NMEA и доделана установка параметров для COM-порта. Надо ли корячить параметры типа чётности и "битности" - тоже непонятно, вроде в сасе этого не было.

Garl

26-10-2011 05:51

manager   ~0004182

милое дело!

vasketsov

03-11-2011 16:49

manager   ~0004279

В общем новая тестовая версия SASPlanet_05. Пожалуй, последняя. Если баги не найдёте.

Из изменений относительно предыдущей:
1. Добавлены "датчике" информации о статусе DGPS (на самом деле там же отображается 2D или 3D и информация от RTDC если есть, ну или если на Dead Reckoning налететь - тоже будет сей факт отображён) и "Unit info" о подключённом устройстве (порт, описание, версия и т.п., если устройство её выдало).
2. Добавлены новые поля (и учтены новые значения для старых полей) из более новых версий NMEA-0183.
3. Реализована поддержка режимов glonass и gps+glonass. В настройках отображаются только спутники из одной системы, где их больше (если поровну - gps), на "датчике" - тоже.
4. Сделана возможность установить время с прибора в качестве системного времени на хосте (кнопка на "датчике" локального времени). Для максимальной точности сделано ожидание первой команды с новым временем, по ней и осуществляется установка времени. Для обоих протоколов.
5. Реализована (в некоторой зачаточной степени) поддержка проприетарных комманд некоторых производителей (для NMEA). По большому счёту исключительно для идентификации приёмника и определения некоторых параметров типа датума. Впрочем, в прилагаемом примере для некоторых типов приборов есть возможность включить DGPS (кнопка на "датчике"). Настройка в инишке в архиве, инишка кладётся в папку с сасом, если инишки нет - ничего окромя стандарта NMEA не шлётся.
6. Исправлены несколько мелких багов.
7. Для garmin usb та же галочка, что включает запись .nmea, включает запись в .garmin (просто данные для отладки на всякий пожарный случай, ничего стандартного в этом формате нету, валом все пакеты без разбора).
8. Задержка в миллисекундах прикручена к рабочим потокам, верхний предел - чуть меньше секунды.

Планирую завтра вечером всё опубликовать, так что просьба потестить. Там есть ещё кое-чего подкрутить по мелочи из фенечек, та же поддержка сохранения трека в формате gpx наверняка потребует внесения изменений (хотя я и постарался вытащить все нужные параметры), не говоря уже о каком-нибудь режиме полёта по треку, но это уже можно будет потом сделать.

Garl

03-11-2011 17:51

manager   ~0004280

ну как обычно на выходные :(
на рабочем гармине протестирую в понедельник.

vasketsov

03-11-2011 18:30

manager   ~0004282

Хорошо, подожду тогда

gpsMax

03-11-2011 19:10

manager   ~0004289

А Глонасс ещё никто не ковырял? А то девайсов с ним всё больше и больше, даже в новых гарминах вон есть.

Garl

03-11-2011 19:12

manager   ~0004290

дык сегодня казали что запуск ещё 3х спутников переносят на 1 день

gpsMax

03-11-2011 19:17

manager   ~0004292

Ну часть спутников-то уже летает, и навигаторы по ним давно уже могут уточнять позицию - получается заметно точнее, чем с голым Gps.

Garl

03-11-2011 19:19

manager   ~0004293

блин и накой я брал oregon 550? Щас же выйдет что-нить новое. :)

vasketsov

03-11-2011 21:35

manager   ~0004295

>А Глонасс ещё никто не ковырял?
Лично в руках я ещё не держал, планирую озаботиться до конца этого года (просто приёмник без экрана хочу на USB или BT). Ну а референс мануалы от производителей чипов - поковырял прилично. Есть некоторые несущественные отличия в реализации, но так-то и сирф некоторый высоту от эллипсоида возвращает в NMEA, а не от геоида.
Есть приёмник от SkyTraq, очень неплохой Fastrax IT600, у наших чипов вроде косяков побольше (по сообщениям пользователей). Но вообще конечно по параметрам NV08C-CSM выглядит вкуснее всех (хотя может ещё чего уже анонсировано).
Ещё б понять, реально для сборки просто приёмника на USB прикупить сам чип (они некоторые очень "интегральные") и паяльник с проводами, или нечего и пытаться...
Смысл реализации поддержки глонасса был в том, чтобы в проге ничего не отъехало при получении "дополнительных" сообщений. Естественно, пока лично не потестирую, гарантий никаких не дам ни на йоту.

Garl

07-11-2011 15:13

manager   ~0004314

Last edited: 07-11-2011 15:26

всё как надо! ура

vasketsov

08-11-2011 06:50

manager   ~0004319

Last edited: 08-11-2011 06:55

1. Изменения в сасе закинуты в репо.
2. Компоненты кинуты в архиве в разделе для разработчков.

Пулл реквест забацал, но там ещё панорамио висит, так что похоже они объединились.

Garl

08-11-2011 07:01

manager   ~0004320

ну эт нужно с Демидовым получать Ц.У. и набраться терпения...

vasketsov

22-11-2011 21:17

manager   ~0004427

Last edited: 22-11-2011 21:29

Итак, практически сделано. Вторая версия VSAGPS (решил выложить тут). Из-за деления на 2 логические части с первой версией (выложенной ранее на форуме) несовместима даже на уровне исходного кода. Так что кто забирал первую - можете её удалить и забрать вторую.
Лицензия и прочая инфа в архиве в текстовом файлике.
Такой вариант устроит?
ps. Это "неофициальный" выпуск, для учёта возможных комментариев с точки зрения стыковки vsagps с сасом. Как всё утрясём - перевыложу архив "официально".

vasketsov

16-12-2011 09:29

manager   ~0004534

vsagps 2.0 лежит в теме, отсюда удалил.

Issue History

Date Modified Username Field Change
20-10-2011 21:17 vasketsov New Issue
20-10-2011 21:19 vasketsov File Added: SASPlanet_01.zip
20-10-2011 21:32 vasketsov Note Added: 0004128
21-10-2011 08:20 Garl Note Added: 0004131
21-10-2011 08:39 vasketsov Note Added: 0004132
21-10-2011 08:39 vasketsov File Added: sas_gps_config.jpg
21-10-2011 08:44 vasketsov Note Edited: 0004132
21-10-2011 09:01 Garl File Added: sas_garmin_usb.png
21-10-2011 09:02 Garl Note Added: 0004133
21-10-2011 09:14 vasketsov Note Added: 0004134
21-10-2011 09:17 Garl Note Added: 0004135
21-10-2011 09:18 Garl Note Edited: 0004135
21-10-2011 10:32 bk99 Note Added: 0004136
21-10-2011 11:10 vdemidov Note Added: 0004137
21-10-2011 11:39 vasketsov Note Added: 0004138
21-10-2011 11:40 vasketsov Note Edited: 0004138
21-10-2011 11:41 vasketsov Note Edited: 0004138
21-10-2011 12:32 vdemidov Note Added: 0004139
21-10-2011 12:40 bk99 Note Added: 0004140
21-10-2011 13:01 Garl Note Added: 0004141
21-10-2011 13:08 vdemidov Note Added: 0004142
21-10-2011 13:10 vdemidov Note Added: 0004143
21-10-2011 13:13 Garl File Added: IMG0315A.jpg
21-10-2011 13:14 Garl File Added: sas_gps.png
21-10-2011 13:15 Garl Note Added: 0004144
21-10-2011 13:27 vdemidov Note Added: 0004145
21-10-2011 13:28 Garl Note Added: 0004146
21-10-2011 13:38 Tolik Assigned To => vasketsov
21-10-2011 13:38 Tolik Status new => assigned
21-10-2011 13:43 vasketsov Note Added: 0004147
21-10-2011 13:46 Garl File Added: 21-10-2011.log
21-10-2011 13:47 Garl Note Added: 0004148
21-10-2011 13:57 vasketsov Note Added: 0004149
21-10-2011 13:59 vasketsov Note Edited: 0004149
21-10-2011 14:01 bk99 Note Added: 0004150
21-10-2011 14:02 Garl Note Added: 0004151
21-10-2011 14:03 vasketsov Note Edited: 0004149
21-10-2011 14:17 vasketsov File Deleted: SASPlanet_01.zip
21-10-2011 14:18 vasketsov File Added: SASPlanet_02.zip
21-10-2011 14:54 bk99 Note Added: 0004152
21-10-2011 17:04 vasketsov Note Added: 0004153
21-10-2011 18:06 Garl Note Added: 0004154
22-10-2011 08:39 gpsMax Tag Attached: garmin
22-10-2011 11:42 vasketsov Tag Attached: gps
24-10-2011 08:55 Garl File Added: 24-10.log
24-10-2011 08:55 Garl File Added: 24-10.png
24-10-2011 08:56 Garl Note Added: 0004169
24-10-2011 12:29 vasketsov Note Added: 0004170
25-10-2011 00:42 vasketsov File Deleted: SASPlanet_02.zip
25-10-2011 00:43 vasketsov File Added: SASPlanet_03.zip
25-10-2011 00:48 vasketsov Note Edited: 0004170
25-10-2011 07:44 Garl File Added: 262.png
25-10-2011 07:44 Garl File Added: 25-10.txt
25-10-2011 07:47 Garl File Added: 25-10-2011.png
25-10-2011 07:50 Garl Note Added: 0004174
25-10-2011 08:09 vasketsov Note Added: 0004175
25-10-2011 08:11 Garl Note Added: 0004176
25-10-2011 08:14 vasketsov Note Edited: 0004175
25-10-2011 08:22 vasketsov Note Added: 0004177
25-10-2011 08:27 vasketsov Note Edited: 0004177
25-10-2011 08:29 Garl Note Added: 0004178
25-10-2011 10:21 vasketsov Note Added: 0004179
25-10-2011 10:25 vasketsov Note Edited: 0004179
25-10-2011 21:47 vasketsov File Deleted: SASPlanet_03.zip
25-10-2011 21:47 vasketsov File Deleted: sas_gps_config.jpg
25-10-2011 21:48 vasketsov File Added: SASPlanet_04.zip
25-10-2011 22:05 vasketsov Note Added: 0004181
26-10-2011 05:50 Garl File Added: 26-10-2011.png
26-10-2011 05:51 Garl File Added: 26-10.log
26-10-2011 05:51 Garl Note Added: 0004182
03-11-2011 16:18 vasketsov File Deleted: SASPlanet_04.zip
03-11-2011 16:19 vasketsov File Added: SASPlanet_05.zip
03-11-2011 16:49 vasketsov Note Added: 0004279
03-11-2011 17:51 Garl Note Added: 0004280
03-11-2011 18:30 vasketsov Note Added: 0004282
03-11-2011 19:10 gpsMax Note Added: 0004289
03-11-2011 19:12 Garl Note Added: 0004290
03-11-2011 19:17 gpsMax Note Added: 0004292
03-11-2011 19:19 Garl Note Added: 0004293
03-11-2011 21:35 vasketsov Note Added: 0004295
07-11-2011 15:13 Garl File Added: 7112011.png
07-11-2011 15:13 Garl File Added: 7112011.txt
07-11-2011 15:13 Garl Note Added: 0004314
07-11-2011 15:26 Garl File Added: 7112011_1.png
07-11-2011 15:26 Garl Note Edited: 0004314
07-11-2011 15:27 Garl File Added: 7112011_1.txt
08-11-2011 06:50 vasketsov Note Added: 0004319
08-11-2011 06:55 vasketsov Note Edited: 0004319
08-11-2011 07:01 Garl Note Added: 0004320
22-11-2011 21:17 vasketsov Note Added: 0004427
22-11-2011 21:18 vasketsov File Added: vsagps_2.0.rar
22-11-2011 21:29 vasketsov Note Edited: 0004427
16-12-2011 09:29 vasketsov File Deleted: vsagps_2.0.rar
16-12-2011 09:29 vasketsov Note Added: 0004534
16-12-2011 13:47 vasketsov Status assigned => resolved
16-12-2011 13:47 vasketsov Fixed in Version => .Nightly
16-12-2011 13:47 vasketsov Resolution open => fixed
16-12-2011 13:50 zed Product Version .Nightly => 41xxxx
16-12-2011 13:50 zed Product Version 41xxxx => .Nightly
16-12-2011 13:50 zed Fixed in Version .Nightly => 41xxxx
23-01-2012 08:34 vdemidov Target Version => 120808
23-01-2012 08:49 vdemidov Fixed in Version 41xxxx => 120808
10-10-2012 11:49 Tolik Status resolved => closed
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request