29.03.2019 Отладка трансивера - весна 2019

Материал из SRNS
Перейти к: навигация, поиск
(2019.03.29 - Ночной тест MCR1)
(2019.04.12 - Проверка работы Dll)
 
(не показаны 39 промежуточных версий 2 участников)
Строка 1: Строка 1:
 +
<summary [ hidden ]>
 +
[[file:20190408_flame.png|center|400px]]
 +
Записи о текущих испытаниях Орикса, Клоникуса и т.п.
 +
</summary>
 +
 +
{{TOCright}}
 +
 
== Рекомендации по записи экспериментов ==  
 
== Рекомендации по записи экспериментов ==  
  
Строка 30: Строка 37:
 
[[image:20190329_MCR1_F5_depdiff.png|center]]
 
[[image:20190329_MCR1_F5_depdiff.png|center]]
  
Сообщения об отправке F5 выглядели при этом так:
+
Время возникновения проблем в SRNS F5:
 +
<source lang="bash">
 +
SbsL1SD 20: Wrong (big) dt at 737513.051539 day (436453000.000000), dt =  1.999999/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.064016 day (437533000.000000), dt =  1.999999/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.064039 day (437534000.000000), dt =  1.999999/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.222882 day (451261000.000000), dt =  1.999999/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.222905 day (451262000.000000), dt =  1.999999/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.227662 day (451682000.000000), dt =  8.000007/ 1.000005
 +
</source>
 +
 
 +
Время возникновения проблем в BINR F5 (обрабатывался уже через рабочий день, т.е. выборка длиннее):
 +
<source lang="bash">
 +
SbsL1SD  5: Wrong (big) dt at 737513.227801 day (451682000.000000), dt =  1.999999/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.227801 day (451682000.000000), dt =  1.999999/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.553657 day (479841000.000000), dt =  3.999998/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.553738 day (479849000.000000), dt =  3.999998/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.553819 day (479857000.000000), dt =  3.999998/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.553912 day (479866000.000000), dt =  3.999998/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at          NaN day (479874000.000000), dt =  3.999998/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.554051 day (479882000.000000), dt =  3.999998/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.554225 day (479911000.000000), dt =  3.999998/ 1.000005
 +
SbsL1SD 20: Wrong (big) dt at 737513.554699 day (480085000.000000), dt =  1.999999/ 1.000005
 +
</source>
 +
 
 +
Проблемы совпадают только в момент жесткого лага, когда в SRNS пропущены 8 секунд.
 +
 
 +
=== Пропуск 8 секунд ===
 +
 
 +
Сообщения об отправке F5 при пропуске 8 секунд выглядели при этом так:
 
<source lang="bash">
 
<source lang="bash">
 
|N1->55817.263756 DebugR: 1313134.000000 1000.000000 52.000000
 
|N1->55817.263756 DebugR: 1313134.000000 1000.000000 52.000000
Строка 39: Строка 74:
 
</source>
 
</source>
  
Между сообщениями о выделении эфемерид до инцидента и после - 30 секунд, так что дело не в currCPUTime.
+
Между сообщениями о выделении эфемерид до инцидента и после - 30 секунд, так что дело не в currCPUTime. Складывается ощущение, что часть пакетов просто ушла в /dev/null
  
 
{{Hider|title = Кусочек третьего пакета
 
{{Hider|title = Кусочек третьего пакета
Строка 167: Строка 202:
 
}}
 
}}
  
 +
=== Переставленные местами пакеты ===
 +
 +
Опять все выглядит так, будто проблема на уровне Protocol-Pipe-Сеть-Pipe-Protocol.
 +
 +
{{Hider|title = Кусочек третьего пакета
 +
|content =
 +
<source lang="bash">
 +
|N1->55403.325910  039 0R GpsL5  № 24  StartTracking: freq:  -1315 Hz, snr: 30 dBHz corr  44
 +
|N1->55403.326850 DebugR: 1313134.000000 1000.000000 52.000000
 +
|N1->55403.326997  012 0R GpsL5  №  6  SgnTimeCorrReq: dEpoch=0 dSec=451276 dWeek=2046, not final from aiming
 +
|N1->55403.327016  019 0R GpsL5  №  9  SgnTimeCorrReq: dEpoch=0 dSec=451276 dWeek=2046, not final from aiming
 +
|N1->55403.327034  039 0R GpsL5  № 24  SgnTimeCorrReq: dEpoch=0 dSec=451276 dWeek=2046, not final from aiming
 +
|N1->55403.327532  012 0R GpsL5  №  6  SgnTimeCorrDone: tchan=604799999 dEpoch=0->0 dSec=0->451276 dWeek=0->2046
 +
|N1->55403.327568  019 0R GpsL5  №  9  SgnTimeCorrDone: tchan=604799999 dEpoch=0->0 dSec=0->451276 dWeek=0->2046
 +
|N1->55403.327624  039 0R GpsL5  № 24  SgnTimeCorrDone: tchan=604799999 dEpoch=0->0 dSec=0->451276 dWeek=0->2046
 +
|N1->55403.796372  019 0R GpsL5  №  9  NonCoherentStart: 0.067217 s,  -569 Hz, 32 dBHz
 +
|N1->55403.796630  019 0R GpsL5  №  9  SgnTimeCorrDone: tchan=451276492 dEpoch=0->0 dSec=451276->451276 dWeek=2046->2046
 +
|N1->55403.807634  039 0R GpsL5  № 24  NonCoherentStart: 0.067577 s,  -1315 Hz, 32 dBHz
 +
|N1->55403.808095  039 0R GpsL5  № 24  SgnTimeCorrDone: tchan=451276503 dEpoch=0->0 dSec=451276->451276 dWeek=2046->2046
 +
|N1->55403.838379  012 0R GpsL5  №  6  NonCoherentStart: 0.082000 s,  -2422 Hz, 27 dBHz
 +
|N1->55403.838619  012 0R GpsL5  №  6  SgnTimeCorrDone: tchan=451276519 dEpoch=0->0 dSec=451276->451276 dWeek=2046->2046
 +
|N1->55404.128833  168 0R SbsL1SD №  1  FrameSyncChunk: SBAS string  0 parity: OK
 +
|N1->55404.131008  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  0 parity: OK
 +
|N1->55404.169089  IRQCtrl: maxIRQ=  627us <IRQ>= 355us maxPer=  645us <Per>= 600us OverTime=  0 Nch=60.0 irqs=1667
 +
|N1->55404.236108  RcvTimeRegs: t=105677.00000/105677.00000 s (WN=2569/2569, TOW=105677/105677\105676, epoch=  0/0.0000\962, chip=    0\ 37765, ph=0) uncert 5995849 m
 +
|N1->55404.326813 DebugR: 1313134.000000 1000.000000 52.000000
 +
|N1->55404.504978  055 0R GpsL1CA № 31  TrgRangeDopp from    facq: +0.10102687 s +- 129.3 m at    -0 Hz +- 63.4 m/s, snr: 39 dBHz
 +
|N1->55404.665190  021 0R GpsL2C  № 10  NonKoherentLoss: f:  -2940 Hz  q: -inf dBHz
 +
|N1->55404.665209  021 0R GpsL2C  № 10  SignalStop: too low SNR
 +
|N1->55404.666978  021 0R GpsL2C  № 10  SignalStop: a reason is not specified
 +
|N1->55404.839190  022 0R GpsL5  № 10  NonKoherentLoss: f:  -1072 Hz  q:  9 dBHz
 +
|N1->55404.839190  022 0R GpsL5  № 10  SignalStop: too low SNR
 +
|N1->55404.840351  022 0R GpsL5  № 10  SignalStop: a reason is not specified
 +
|N1->55406.327016  025 0R GpsL2C  № 12  SgnTimeCorrReq: dEpoch=0 dSec=451279 dWeek=2046, not final from aiming
 +
|N1->55406.327034  038 0R GpsL2C  № 24  SgnTimeCorrReq: dEpoch=0 dSec=451279 dWeek=2046, not final from aiming
 +
|N1->55406.327034  042 0R GpsL5  № 25  SgnTimeCorrReq: dEpoch=0 dSec=451279 dWeek=2046, not final from aiming
 +
|N1->55406.327181 DebugR: 1313134.000000 1000.000000 52.000000
 +
|N1->55406.328011  003 0R GpsL5  №  1  SgnTimeCorrDone: tchan=0 dEpoch=0->0 dSec=0->451279 dWeek=0->2046
 +
|N1->55406.328066  016 0R GpsL5  №  8  SgnTimeCorrDone: tchan=0 dEpoch=0->0 dSec=0->451279 dWeek=0->2046
 +
|N1->55406.328085  025 0R GpsL2C  № 12  SgnTimeCorrDone: tchan=604799998 dEpoch=0->0 dSec=0->451279 dWeek=0->2046
 +
|N1->55406.328140  038 0R GpsL2C  № 24  SgnTimeCorrDone: tchan=604799998 dEpoch=0->0 dSec=0->451279 dWeek=0->2046
 +
|N1->55406.328158  042 0R GpsL5  № 25  SgnTimeCorrDone: tchan=0 dEpoch=0->0 dSec=0->451279 dWeek=0->2046
 +
|N1->55405.128796  168 0R SbsL1SD №  1  FrameSyncChunk: SBAS string  3 parity: OK
 +
|N1->55405.130971  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  3 parity: OK
 +
|N1->55405.169292  IRQCtrl: maxIRQ=  498us <IRQ>= 352us maxPer=  627us <Per>= 600us OverTime=  0 Nch=60.0 irqs=1667
 +
|N1->55405.236311  RcvTimeRegs: t=105678.00000/105678.00000 s (WN=2569/2569, TOW=105678/105678\105677, epoch=  0/0.0000\962, chip=    0\ 37765, ph=0) uncert 5995849 m
 +
|N1->55405.325320  021 0R GpsL2C  № 10  TrgRangeDopp from GpsL1CA: +0.06702986 s +-  50.0 m at  -594 Hz +-  1.0 m/s, snr: 35 dBHz
 +
|N1->55405.325320  022 0R GpsL5  № 10  TrgRangeDopp from GpsL1CA: +0.06702986 s +-  50.0 m at  -569 Hz +-  1.0 m/s, snr: 35 dBHz
 +
|N1->55405.325523  021 0R GpsL2C  № 10  TargetInit: tau =  67.0299 ms, f =    -594 Hz, sigma range = 5.000000e+01 m, sigma vel = 1.000000e+00 m/s, T= 2.0 ms, NN=40
 +
|N1->55405.325523  021 0R GpsL2C  № 10  StartTracking: freq:  -594 Hz, snr: 30 dBHz corr  16
 +
|N1->55405.325541  022 0R GpsL5  № 10  TargetInit: tau =  67.0299 ms, f =    -569 Hz, sigma range = 5.000000e+01 m, sigma vel = 1.000000e+00 m/s, T= 1.0 ms, NN=40
 +
|N1->55405.325541  022 0R GpsL5  № 10  StartTracking: freq:  -569 Hz, snr: 30 dBHz corr  33
 +
|N1->55405.326186  021 0R GpsL2C  № 10  SgnTimeCorrReq: dEpoch=0 dSec=451271 dWeek=2046, not final from aiming
 +
|N1->55405.326205  022 0R GpsL5  № 10  SgnTimeCorrReq: dEpoch=0 dSec=451274 dWeek=2046, not final from aiming
 +
|N1->55405.326647  021 0R GpsL2C  № 10  SgnTimeCorrDone: tchan=7020 dEpoch=0->0 dSec=0->451271 dWeek=0->2046
 +
|N1->55405.326665  022 0R GpsL5  № 10  SgnTimeCorrDone: tchan=4021 dEpoch=0->0 dSec=0->451274 dWeek=0->2046
 +
|N1->55405.326794  021 0R GpsL2C  № 10  SgnTimeCorrReq: dEpoch=0 dSec=7 dWeek=0, not final from aiming
 +
|N1->55405.326794  022 0R GpsL5  № 10  SgnTimeCorrReq: dEpoch=0 dSec=4 dWeek=0, not final from aiming
 +
|N1->55405.327126 DebugR: 1313134.000000 1000.000000 52.000000
 +
|N1->55405.327882  021 0R GpsL2C  № 10  SgnTimeCorrDone: tchan=7020 dEpoch=0->0 dSec=451271->451278 dWeek=2046->2046
 +
|N1->55405.327882  022 0R GpsL5  № 10  SgnTimeCorrDone: tchan=451274000 dEpoch=0->0 dSec=451274->451278 dWeek=2046->2046
 +
|N1->55405.607608  025 0R GpsL2C  № 12  NonKoherentLoss: f:  -611 Hz  q: -inf dBHz
 +
|N1->55405.607627  025 0R GpsL2C  № 12  SignalStop: too low SNR
 +
|N1->55405.609415  025 0R GpsL2C  № 12  SignalStop: a reason is not specified
 +
|N1->55405.609452  038 0R GpsL2C  № 24  NonKoherentLoss: f:  -1707 Hz  q: -inf dBHz
 +
|N1->55405.609452  038 0R GpsL2C  № 24  SignalStop: too low SNR
 +
|N1->55405.612198  038 0R GpsL2C  № 24  SignalStop: a reason is not specified
 +
|N1->55405.612861  021 0R GpsL2C  № 10  SgnTimeCorrDone: tchan=451278306 dEpoch=0->0 dSec=451278->451278 dWeek=2046->2046
 +
|N1->55405.613230  021 0R GpsL2C  № 10  NonCoherentStart: 0.067030 s,  -594 Hz, 27 dBHz
 +
|N1->55405.800353  022 0R GpsL5  № 10  NonCoherentStart: 0.067031 s,  -569 Hz, 32 dBHz
 +
|N1->55405.800630  022 0R GpsL5  № 10  SgnTimeCorrDone: tchan=451278496 dEpoch=0->0 dSec=451278->451278 dWeek=2046->2046
 +
|N1->55405.805570  003 0R GpsL5  №  1  NonKoherentLoss: f:  -2005 Hz  q: -inf dBHz
 +
|N1->55405.805570  003 0R GpsL5  №  1  SignalStop: too low SNR
 +
|N1->55405.806915  003 0R GpsL5  №  1  SignalStop: a reason is not specified
 +
|N1->55405.813440  042 0R GpsL5  № 25  NonKoherentLoss: f:  -116 Hz  q: 12 dBHz
 +
|N1->55405.813440  042 0R GpsL5  № 25  SignalStop: too low SNR
 +
|N1->55405.814583  042 0R GpsL5  № 25  SignalStop: a reason is not specified
 +
|N1->55405.817569  016 0R GpsL5  №  8  NonKoherentLoss: f:  -1630 Hz  q: 15 dBHz
 +
|N1->55405.817587  016 0R GpsL5  №  8  SignalStop: too low SNR
 +
|N1->55405.818362  016 0R GpsL5  №  8  SignalStop: a reason is not specified
 +
|N1->55406.026553  008 0R GpsL1CA №  4  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.026608  013 0R GpsL1CA №  7  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.026682  026 0R GpsL1CA № 13  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.126363  010 0R GpsL1CA №  6  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.126437  023 0R GpsL1CA № 11  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.126492  033 0R GpsL1CA № 20  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.126529  035 0R GpsL1CA № 22  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.128815  168 0R SbsL1SD №  1  FrameSyncChunk: SBAS string  4 parity: OK
 +
|N1->55406.131008  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  4 parity: OK
 +
|N1->55406.168904  IRQCtrl: maxIRQ=  516us <IRQ>= 346us maxPer=  645us <Per>= 600us OverTime=  0 Nch=60.0 irqs=1666
 +
|N1->55406.226560  027 0R GpsL1CA № 14  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.226652  052 0R GpsL1CA № 30  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.235887  RcvTimeRegs: t=105679.00000/105679.00000 s (WN=2569/2569, TOW=105679/105679\105678, epoch=  0/0.0000\962, chip=    0\ 37765, ph=0) uncert 5995849 m
 +
|N1->55406.325596  003 0R GpsL5  №  1  TrgRangeDopp from GpsL1CA: +0.06762069 s +-  50.0 m at -2063 Hz +-  1.0 m/s, snr: 39 dBHz
 +
|N1->55406.325615  016 0R GpsL5  №  8  TrgRangeDopp from GpsL1CA: +0.06735678 s +-  50.0 m at -1316 Hz +-  1.0 m/s, snr: 38 dBHz
 +
|N1->55406.325633  025 0R GpsL2C  № 12  TrgRangeDopp from GpsL1CA: +0.06729371 s +-  50.0 m at  -594 Hz +-  1.0 m/s, snr: 36 dBHz
 +
|N1->55406.325652  038 0R GpsL2C  № 24  TrgRangeDopp from GpsL1CA: +0.06757770 s +-  50.0 m at -1374 Hz +-  1.0 m/s, snr: 38 dBHz
 +
|N1->55406.325670  042 0R GpsL5  № 25  TrgRangeDopp from GpsL1CA: +0.06727300 s +-  50.0 m at  -570 Hz +-  1.0 m/s, snr: 36 dBHz
 +
|N1->55406.325817  003 0R GpsL5  №  1  TargetInit: tau =  67.6207 ms, f =  -2063 Hz, sigma range = 5.000000e+01 m, sigma vel = 1.000000e+00 m/s, T= 1.0 ms, NN=40
 +
|N1->55406.325836  003 0R GpsL5  №  1  StartTracking: freq:  -2063 Hz, snr: 30 dBHz corr  6
 +
|N1->55406.325854  016 0R GpsL5  №  8  TargetInit: tau =  67.3568 ms, f =  -1316 Hz, sigma range = 5.000000e+01 m, sigma vel = 1.000000e+00 m/s, T= 1.0 ms, NN=40
 +
|N1->55406.325854  016 0R GpsL5  №  8  StartTracking: freq:  -1316 Hz, snr: 30 dBHz corr  12
 +
|N1->55406.325873  025 0R GpsL2C  № 12  TargetInit: tau =  67.2937 ms, f =    -594 Hz, sigma range = 5.000000e+01 m, sigma vel = 1.000000e+00 m/s, T= 2.0 ms, NN=40
 +
|N1->55406.325891  025 0R GpsL2C  № 12  StartTracking: freq:  -594 Hz, snr: 30 dBHz corr  38
 +
|N1->55406.325910  038 0R GpsL2C  № 24  TargetInit: tau =  67.5777 ms, f =  -1374 Hz, sigma range = 5.000000e+01 m, sigma vel = 1.000000e+00 m/s, T= 2.0 ms, NN=40
 +
|N1->55406.325910  038 0R GpsL2C  № 24  StartTracking: freq:  -1374 Hz, snr: 30 dBHz corr  42
 +
|N1->55406.325946  042 0R GpsL5  № 25  TargetInit: tau =  67.2730 ms, f =    -570 Hz, sigma range = 5.000000e+01 m, sigma vel = 1.000000e+00 m/s, T= 1.0 ms, NN=40
 +
|N1->55406.325946  042 0R GpsL5  № 25  StartTracking: freq:  -570 Hz, snr: 30 dBHz corr  53
 +
|N1->55406.326463  001 0R GpsL1CA №  1  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.326518  009 0R GpsL1CA №  5  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.326573  020 0R GpsL1CA № 10  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.326610  028 0R GpsL1CA № 15  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.326684  031 0R GpsL1CA № 18  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.326739  046 0R GpsL1CA № 27  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.326997  003 0R GpsL5  №  1  SgnTimeCorrReq: dEpoch=0 dSec=451279 dWeek=2046, not final from aiming
 +
|N1->55406.327016  016 0R GpsL5  №  8  SgnTimeCorrReq: dEpoch=0 dSec=451279 dWeek=2046, not final from aiming
 +
|N1->55406.426383  032 0R GpsL1CA № 19  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.526581  030 0R GpsL1CA № 17  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.526654  036 0R GpsL1CA № 23  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.526691  040 0R GpsL1CA № 25  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.610650  025 0R GpsL2C  № 12  SgnTimeCorrDone: tchan=451279304 dEpoch=0->0 dSec=451279->451279 dWeek=2046->2046
 +
|N1->55406.611405  025 0R GpsL2C  № 12  NonCoherentStart: 0.067294 s,  -594 Hz, 30 dBHz
 +
|N1->55406.616677  038 0R GpsL2C  № 24  SgnTimeCorrDone: tchan=451279310 dEpoch=0->0 dSec=451279->451279 dWeek=2046->2046
 +
|N1->55406.617451  038 0R GpsL2C  № 24  NonCoherentStart: 0.067578 s,  -1374 Hz, 30 dBHz
 +
|N1->55406.626557  017 0R GpsL1CA №  9  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.626612  024 0R GpsL1CA № 12  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.626667  029 0R GpsL1CA № 16  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.626722  043 0R GpsL1CA № 26  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.643404  015 0R GpsL2C  №  8  NonKoherentLoss: f:  -551 Hz  q: -inf dBHz
 +
|N1->55406.643404  015 0R GpsL2C  №  8  SignalStop: too low SNR
 +
|N1->55406.645615  015 0R GpsL2C  №  8  SignalStop: a reason is not specified
 +
|N1->55406.726367  014 0R GpsL1CA №  8  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.796390  016 0R GpsL5  №  8  NonCoherentStart: 0.067358 s,  -1316 Hz, 31 dBHz
 +
|N1->55406.796390  019 0R GpsL5  №  9  NonKoherentLoss: f:  -126 Hz  q:  9 dBHz
 +
|N1->55406.796390  019 0R GpsL5  №  9  SignalStop: too low SNR
 +
|N1->55406.796630  016 0R GpsL5  №  8  SgnTimeCorrDone: tchan=451279492 dEpoch=0->0 dSec=451279->451279 dWeek=2046->2046
 +
|N1->55406.797238  019 0R GpsL5  №  9  SignalStop: a reason is not specified
 +
|N1->55406.803468  042 0R GpsL5  № 25  NonCoherentStart: 0.067274 s,  -570 Hz, 31 dBHz
 +
|N1->55406.803874  042 0R GpsL5  № 25  SgnTimeCorrDone: tchan=451279499 dEpoch=0->0 dSec=451279->451279 dWeek=2046->2046
 +
|N1->55406.807634  039 0R GpsL5  № 24  NonKoherentLoss: f:  -1093 Hz  q:  9 dBHz
 +
|N1->55406.807653  039 0R GpsL5  № 24  SignalStop: too low SNR
 +
|N1->55406.809035  039 0R GpsL5  № 24  SignalStop: a reason is not specified
 +
|N1->55406.816113  003 0R GpsL5  №  1  NonCoherentStart: 0.067622 s,  -2063 Hz, 33 dBHz
 +
|N1->55406.817016  003 0R GpsL5  №  1  SgnTimeCorrDone: tchan=451279512 dEpoch=0->0 dSec=451279->451279 dWeek=2046->2046
 +
|N1->55406.826582  034 0R GpsL1CA № 21  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.838379  012 0R GpsL5  №  6  NonKoherentLoss: f:  -2395 Hz  q:  9 dBHz
 +
|N1->55406.838397  012 0R GpsL5  №  6  SignalStop: too low SNR
 +
|N1->55406.838969  012 0R GpsL5  №  6  SignalStop: a reason is not specified
 +
|N1->55406.926522  004 0R GpsL1CA №  2  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55406.926614  037 0R GpsL1CA № 24  NavMsgGpsL1CANewFrame: WN=2046, TOW=451260, time 29.03.2019 05:21:00
 +
|N1->55407.128759  168 0R SbsL1SD №  1  FrameSyncChunk: SBAS string  5 parity: OK
 +
|N1->55407.130953  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  5 parity: OK
 +
|N1->55407.169107  IRQCtrl: maxIRQ=  590us <IRQ>= 348us maxPer=  645us <Per>= 600us OverTime=  0 Nch=60.0 irqs=1667
 +
|N1->55407.236090  RcvTimeRegs: t=105680.00000/105680.00000 s (WN=2569/2569, TOW=105680/105680\105679, epoch=  0/0.0000\962, chip=    0\ 37765, ph=0) uncert 5995849 m
 +
|N1->55407.325652  012 0R GpsL5  №  6  TrgRangeDopp from GpsL1CA: +0.08200648 s +-  50.0 m at -2422 Hz +-  1.0 m/s, snr: 45 dBHz
 +
</source>
 +
|hidden = 1
 +
}}
 +
 +
 +
=== Дальности и т.п. ===
  
 
Другая проблема - GPS L1C/A. Опять выглядит так, как будто действует имитационная помеха. Либо это внутрисистемные помехи почему-то начали так сильно влиять на нас.  
 
Другая проблема - GPS L1C/A. Опять выглядит так, как будто действует имитационная помеха. Либо это внутрисистемные помехи почему-то начали так сильно влиять на нас.  
Строка 193: Строка 389:
 
  |hidden = 1
 
  |hidden = 1
 
}}
 
}}
 +
 +
 +
== 2019.04.01 - Тест MCR1 за выходные ==
 +
 +
* номер ревизии PL: из bin соответствующей ревизии
 +
* номер ревизии PS: 346f03e3a3a85cbfc17eee665bfcc2bf48bf5258
 +
* экземпляр приемника: MCR1 плата 61;
 +
* условия: антенна на крыше Е;
 +
 +
 +
Приемник проработал выходные, не упал, в целом всё ок. Оператива держится на уровне 71Мб, как при старте. Оба ядра загружены примерно на 75%.
 +
 +
Код децимации 100 мс main всё ещё сбоит
 +
[[file:20190401_MCR1_depF5.png|center]]
 +
 +
В GPS опять ложняки по L1CA.
 +
 +
С временем F5 особых проблем нет, только пару раз выпадали на 5 секунд измерения с отдельного спутника (по флагу м.б.).
 +
 +
{{Hider|title = 0x0F5 SNR
 +
|content = [[file:20190401_MCR1_0xF5_SNR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title =  0x0F5 PR
 +
|content = [[file:20190401_MCR1_0xF5_PR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title =  0x0F5 dPRPH
 +
|content = [[file:20190401_MCR1_0xF5_dPRPH.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title =  0x0F5 PD
 +
|content = [[file:20190401_MCR1_0xF5_PD.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title =  0x0F5 Obs
 +
|content = [[file:20190401_MCR1_0xF5_Obs.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title =  0x002
 +
|content = [[file:20190401_MCR1_0x002.png|center]]
 +
|hidden = 1
 +
}}
 +
 +
 +
== 2019.04.02 - Новая шина HPP для зеркалирования каналов ==
 +
 +
* номер ревизии PL: из bin соответствующей ревизии
 +
* номер ревизии PS: c938d6a9aab0addd1d2974ec135f1749bc22b72d
 +
* экземпляр приемника: CLONICUS плата 112;
 +
* условия: антенна на крыше Е;
 +
 +
Иван запилил DMA
 +
 +
Чтение 120 каналов на старой шине GPP:
 +
[[file:20190402_GPP_120.png|center]]
 +
 +
Полная замена GPP на HPP заставляет нас два раза запускать DMA
 +
[[file:20190402_HPPx2_120.png|center]]
 +
 +
Если совмещать GPP с HPP: DMA в основном, GPP для повторного чтения времени.
 +
[[file:20190402_HPPx1_120.png|center]]
 +
 +
Раза в 3 выиграли по времени, но главное - прирост с увеличением числа каналов стал намного меньше. Думаю, порядка 20 мкс на 100 каналов
 +
 +
Немного изучил свойства clock_gettime(). На вызов функции уходит примерно '''600 нс, дискрет значения - 18 мкс''' в случае Oryx на родном Debian.
 +
 +
Собрали прошивку под Oryx, на загрузке в 60 каналов по небу виден выигрыш первого маркера в 2 раза:
 +
[[file:20190403_GHPP_Oryx_60ch.png|center]]
 +
 +
UPDATE: Время DMA на Клоникусе около 7 мкс на 40 каналов.
 +
 +
== 2019.04.05 - Ночной тест MCR1 с HPP и 70 каналами ==
 +
 +
* номер ревизии PL: собирался Иваном на ~100 каналов, md5sum 0ab4c9f04bdee4adf3301b5cb8e06b25
 +
* номер ревизии PS: bb44a4c07d31896915b97947018bab17f6d229c2
 +
* экземпляр приемника: MCR1 плата 61;
 +
* условия: антенна на крыше Е;
 +
 +
Убрал дополнительное зеркалирование OCM в RAM, в итоге T1 упал до 30 мкс. В таком режиме число каналов поднял до 70. Приемник проработал ночь, всё ок.
 +
 +
{{Hider|title = 0x0F5 SNR
 +
|content = [[file:20190405_MCR1_HPP_0x0F5_SNR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 PR
 +
|content = [[file:20190405_MCR1_HPP_0x0F5_PR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 dPRPH
 +
|content = [[file:20190405_MCR1_HPP_0x0F5_dPRPH.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 Obs
 +
|content = [[file:20190405_MCR1_HPP_0x0F5_Obs.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 D
 +
|content = [[file:20190405_MCR1_HPP_0x0F5_D.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x002
 +
|content = [[file:20190405_MCR1_HPP_0x002.png|center]]
 +
|hidden = 1
 +
}}
 +
 +
Вывод: теперь мы тащим 70 каналов чуть лучше, чем раньше тащили 60.
 +
 +
Утечки памяти при этом нет, съедает около 71 Мб. Ядро с main загружено на 100%, в основном время исполнения там.
 +
 +
 +
== 2019.04.08 - Как мы пережили ролловер GPS ==
 +
 +
* номер ревизии PL: собирался Иваном на ~100 каналов, md5sum 0ab4c9f04bdee4adf3301b5cb8e06b25
 +
* номер ревизии PS: a4aea27ba6dc0ade3fe02227c8d955ab240d77b1
 +
* экземпляр приемника: MCR1 плата 61;
 +
* условия: антенна на крыше Е;
 +
 +
Приемник проработал выходные, всё ок. С 6 на 7 апреля случился ролловер GPS!
 +
Есть ощущение, что СДКМ его не пережил, слежение упало и больше мы данных не увидели:
 +
 +
<source lang="bash">
 +
|N1->115638.645883  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  4 parity: OK
 +
|N1->115639.646381  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  5 parity: OK
 +
|N1->115640.646621  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string 25 parity: OK
 +
|N1->115641.646049  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string 14 parity: FAIL
 +
|N1->115642.646381  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string 24 parity: FAIL
 +
|N1->115643.311966  169 0R SbsL1SD №  2  CoherentLoss: f:    60 Hz  q: 27 dBHz
 +
|N1->115643.321293  169 0R SbsL1SD №  2  NonCoherentStart: 1554479572.900374 s,    51 Hz, 27 dBHz
 +
|N1->115646.391206  169 0R SbsL1SD №  2  CoherentStart: f:    261 Hz  q: 31 dBHz
 +
|N1->115646.644446  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  2 parity: FAIL
 +
|N1->115648.391317  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 4
 +
|N1->115648.591951  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
 +
|N1->115648.659320  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 1 symbs
 +
|N1->115649.399298  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 6
 +
|N1->115649.652353  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
 +
|N1->115652.390303  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 6
 +
|N1->115652.600559  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
 +
|N1->115653.390506  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 8
 +
|N1->115653.650012  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 1 symbs
 +
|N1->115656.600835  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
 +
|N1->115657.390321  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 7
 +
|N1->115657.649994  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
 +
|N1->115658.670490  169 0R SbsL1SD №  2  CoherentLoss: f:    278 Hz  q: 25 dBHz
 +
|N1->115658.680296  169 0R SbsL1SD №  2  NonCoherentStart: 1554479572.900373 s,    296 Hz, 25 dBHz
 +
|N1->115665.840638  169 0R SbsL1SD №  2  NonKoherentLoss: f:  4237 Hz  q:  9 dBHz
 +
|N1->115665.840656  169 0R SbsL1SD №  2  SignalStop: too low SNR
 +
|N1->115665.850351  169 0R SbsL1SD №  2  SignalStop: a reason is not specified
 +
|N1->115684.608097  169 0R SbsL1SD №  2  TrgRangeDopp from    facq: +0.88924617 s +- 129.3 m at    -0 Hz +- 63.4 m/s, snr: 39 dBHz
 +
|N1->115685.167513  169 0R SbsL1SD №  2  TargetInit: tau =  889.2462 ms, f =      -0 Hz, sigma range = 1.292878e+02 m, sigma vel = 6.343122e+01 m/s, T= 1.0 ms, NN=40
 +
|N1->115685.167513  169 0R SbsL1SD №  2  StartTracking: freq:    -0 Hz, snr: 30 dBHz corr  67
 +
|N1->115685.168269  169 0R SbsL1SD №  2  SgnTimeCorrReq: dEpoch=0 dSec=529251 dWeek=1213, not final from aiming
 +
|N1->115685.168804  169 0R SbsL1SD №  2  SgnTimeCorrDone: tchan=4391 dEpoch=0->0 dSec=0->529251 dWeek=0->1213
 +
|N1->115685.168859  169 0R SbsL1SD №  2  SgnTimeCorrReq: dEpoch=0 dSec=5 dWeek=0, not final from aiming
 +
|N1->115685.170039  169 0R SbsL1SD №  2  SgnTimeCorrDone: tchan=529251001 dEpoch=0->0 dSec=529251->529256 dWeek=1213->1213
 +
|N1->115686.340426  169 0R SbsL1SD №  2  NonCoherentStart: 0.889249 s,      1 Hz, 36 dBHz
 +
|N1->115691.460345  169 0R SbsL1SD №  2  CoherentStart: f:    104 Hz  q: 31 dBHz
 +
|N1->115692.970400  169 0R SbsL1SD №  2  SymSyncDone
 +
|N1->115694.650215  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 1 symbs
 +
|N1->115694.970197  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 4
 +
|N1->115695.970400  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 6
 +
|N1->115696.080219  169 0R SbsL1SD №  2  CoherentLoss: f:    98 Hz  q: 23 dBHz
 +
|N1->115696.090412  169 0R SbsL1SD №  2  NonCoherentStart: 0.889249 s,    97 Hz, 23 dBHz
 +
|N1->115701.200599  169 0R SbsL1SD №  2  CoherentStart: f:    179 Hz  q: 31 dBHz
 +
|N1->115701.592080  169 0R SbsL1SD №  2  Debug: 23123213.000000        0.000000        4.000000        0.000000        0.000000
 +
|N1->115701.592485  169 0R SbsL1SD №  2  Debug: 23123213.000000        0.000000        4.000000        0.000000        0.000000
 +
|N1->115703.210608  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 7
 +
|N1->115703.250292  169 0R SbsL1SD №  2  CoherentLoss: f:    207 Hz  q: 26 dBHz
 +
|N1->115703.260504  169 0R SbsL1SD №  2  NonCoherentStart: 0.889248 s,    218 Hz, 26 dBHz
 +
|N1->115706.330730  169 0R SbsL1SD №  2  CoherentStart: f:    216 Hz  q: 30 dBHz
 +
|N1->115706.591711  169 0R SbsL1SD №  2  Debug: 23123213.000000        0.000000        4.000000        0.000000        0.000000
 +
|N1->115707.332776  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 9
 +
|N1->115709.650215  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
 +
|N1->115710.340481  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 9
 +
|N1->115710.410597  169 0R SbsL1SD №  2  CoherentLoss: f:    190 Hz  q: 25 dBHz
 +
|N1->115710.420403  169 0R SbsL1SD №  2  NonCoherentStart: 0.889247 s,    191 Hz, 25 dBHz
 +
|N1->115725.772789  169 0R SbsL1SD №  2  NonKoherentLoss: f:  -3227 Hz  q: -inf dBHz
 +
|N1->115725.772789  169 0R SbsL1SD №  2  SignalStop: too low SNR
 +
|N1->115725.783129  169 0R SbsL1SD №  2  SignalStop: a reason is not specified
 +
|N1->115727.072551  169 0R SbsL1SD №  2  TrgRangeDopp from    facq: +0.35804310 s +- 129.3 m at    -0 Hz +- 63.4 m/s, snr: 44 dBHz
 +
</source>
 +
 +
{{Hider|title = 0x0F5 SNR
 +
|content = [[file:20190408_MCR1_HPP_0x0F5_SNR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 PR
 +
|content = [[file:20190408_MCR1_HPP_0x0F5_PR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 dPRPH
 +
|content = [[file:20190408_MCR1_HPP_0x0F5_dPRPH.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 Obs
 +
|content = [[file:20190408_MCR1_HPP_0x0F5_Obs.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 D
 +
|content = [[file:20190408_MCR1_HPP_0x0F5_D.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x002
 +
|content = [[file:20190408_MCR1_HPP_0x002.png|center]]
 +
|hidden = 1
 +
}}
 +
 +
RTKLIB живее всех живых, проверил и RTKPOST, и CONVBIN:
 +
{{Hider|title = RTKLIB resid GPS
 +
|content = [[file:20190408_residGPS.jpg|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = RTKLIB resid GLN
 +
|content = [[file:20190408_residGLN.jpg|center]]
 +
|hidden = 1
 +
}}
 +
 +
== 2019.04.08 Perf и Flamegraph ==
 +
 +
Профилирование модели с помощью perf. На русском почитать можно [https://eax.me/c-cpp-profiling/ тут].
 +
 +
Запись лога:
 +
<source lang="bash">perf record -g -F 99 -- ./sim</source>
 +
 +
Преобразование в формат flame graph'а:
 +
<source lang="bash">perf script | ./stackcollapse-perf.pl > out.perf-folded</source>
 +
 +
Построение flame-диаграммы:
 +
<source lang="bash">./flamegraph.pl out.perf-folded > perf-kernel.svg</source>
 +
 +
Открываем svg в браузере и наслаждаемся:
 +
<source lang="bash">chromium-browser ./perf-kernel.svg</source>
 +
 +
Видим, что в модели всё время уходит на формирование коррелированных шумов квадратур, надо убрать там QS Matrix:
 +
[[file:20190408_flame.png|center]]
 +
 +
В обработчике прерываний одеяло на себя перетягивают updMeas и updTracking, причем куча времени уходит на isTracking:
 +
[[file:20190408_flame2.png|center]]
 +
 +
 +
== 2019.04.10 - Первый ночной тест Клоникуса ==
 +
 +
* номер ревизии PL: 948f878ff5cba24bf1948d6b52569d8471e25b94 собирался мной на 40 каналов
 +
* номер ревизии PS: f35f6003b512ec084eca3691b811a62dff111f3e (с небольшими изменениями)
 +
* экземпляр приемника: CLONICUS плата 112;
 +
* условия: антенна на крыше Е;
 +
 +
В F5 пропущена одна точка, примерно в середине лога. Причем пакет дошел, но в текстовый файл записался с ошибками - время 0, номер недели -5000, в первых трех сигналах мусор. Т.е. начало пакета поломано.
 +
 +
Если смотреть глазами ход 0x003, то время пакетов заметно подлагивает. Если запустить WireShark (<code>ip.addr == 192.168.0.112 && tcp.port == 3490 && ip.len > 166 && data.data[6] == 0xF5</code>), то тоже видны проблемы:
 +
[[file:20190410_CLO2_HPP_WS_F5diff.png|center]]
 +
 +
{{Hider|title = 0x0F5 SNR
 +
|content = [[file:20190410_CLO2_HPP_0x0F5_SNR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 PR
 +
|content = [[file:20190410_CLO2_HPP_0x0F5_PR.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 dPRPH
 +
|content = [[file:20190410_CLO2_HPP_0x0F5_dPRPH.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 Obs
 +
|content = [[file:20190410_CLO2_HPP_0x0F5_Obs.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x0F5 D
 +
|content = [[file:20190410_CLO2_HPP_0x0F5_D.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = 0x002
 +
|content = [[file:20190410_CLO2_HPP_0x002.png|center]]
 +
|hidden = 1
 +
}}
 +
{{Hider|title = RTKLIB GPS
 +
|content = [[file:20190410_residGPS.jpg|center]] <br>
 +
[[file:20190410_nsatGPS.jpg|center]] <br>
 +
[[file:20190410_solGPS.jpg|center]] <br>
 +
|hidden = 1
 +
}}
 +
{{Hider|title = RTKLIB GLN
 +
|content = [[file:20190410_residGLN.jpg|center]] <br>
 +
[[file:20190410_solGLN.jpg|center]] <br>
 +
|hidden = 1
 +
}}
 +
 +
== 2019.04.12 - Проверка работы Dll ==
 +
 +
* номер ревизии PL: oryx.bit версия 5.5 (проект bin, коммит 2887efc0)
 +
* номер ревизии PS: trcv скомпилен из коммита 22be8d57 ветки multiInputCorr (где пилится многовходовый коррелятор)
 +
* экземпляр приемника: Oryx IP 60, наш MCR;
 +
* условия: работа по имитатору SMBV;
 +
 +
Сценарий SMBV - Static, один спутник ГЛОНАСС №5, дальность руками забита на 19 000 км. Level = -110 дБм.
 +
 +
Исследуется появление переходного процесса в измерениях псевдодальности при "втягивании" Dll. Исследование проведено как на железке, так и на модели в той же версии PS. В модели выключены "возмущения" шкалы времени.
 +
 +
Чтобы не крутить несколько ручек, пока расстройку E-L не трогаем, трогаем только полосу. Настройки режима "втягивания" Dll следующие:
 +
 +
sgnrcvgln.cpp :
 +
 +
<source lang="bash">
 +
    dll->setTpullin(240.0);
 +
    dll->setDftPullin(1.0);
 +
    dll->setDftEnd(0.025);
 +
 +
    switch (getType()) {
 +
    case GlnL1OF:
 +
        msg = new SgnMsgLxOF(msg0x3);
 +
        frame = new FrameSyncGlnLxOF(Isym, Qsym, ksym, 200, 3, msg0x3);
 +
        df_Lit = 0.5625e6;
 +
        f0_0 = 1602.0e6;
 +
        setTep(1);
 +
        setOverlay(0, 0);
 +
        setND(10);
 +
        setChipRate(0.511e6);
 +
        dll->setTauZero(LightC / ChipRate);
 +
        dll->setDeltaTPullin(0.5*dll->getTauZero());
 +
        dll->setDeltaTCohEnd(0.5*dll->getTauZero());
 +
        dll->setDeltaTNonCohEnd(0.5*dll->getTauZero());
 +
        NC_locking = 5;
 +
        setLit(GlnsLits[ns]);
 +
        break;
 +
</source>
 +
 +
dll.cpp :
 +
 +
<source lang="bash">
 +
dll::update(....)
 +
 +
    if (!pulled) {
 +
        if (t < Tpullin/2){
 +
            dft = getDftPullin() - 2*(getDftPullin() - getDftEnd()) * t / Tpullin;
 +
        }
 +
    } else if (getDftMode() != bw_hold) {
 +
        // Выбор полосы по таблице в зависимости от с/ш
 +
    }
 +
</source>
 +
 +
 +
Состояние Dll "принтфится" в SgnRcv::updMeas2() :
 +
 +
<source lang="bash">
 +
printf("%f %f %f %f %f %f %f %f %.15f\n", dll->gett(), dll->getDft(), getDeltaT(), 10*log10(q), dll->getSdt(), dll->getUdt(), dll->getKt()[0], dll->getKt()[1], fix_range);
 +
</source>
 +
 +
 +
Поддержка Dll от Pll выключена в функциях nonCoherent() и coherent().
 +
 +
Итого имеем время втягивания 240 с., но конечная полоса устанавливается в 2 раза быстрее и далее ждет. На 240 секунде поднимается флажок pullin и Dll переходит на работу по T = 5 мс.
 +
 +
Полученные графики с Oryx:
 +
 +
{{Hider|title = Результаты, по оси X - время t из класса Dll.
 +
|content =  <gallery perrow=4 widths="500px" heights="500px">
 +
File:DeltaT.png
 +
File:Dft.png
 +
File:qcno.png
 +
File:Sdt.png
 +
File:Udt.png
 +
File:Kt.png
 +
File:Fix_range.png
 +
</gallery>
 +
|hidden = 1
 +
}}
 +
 +
 +
Что смущает - переходной процесс в дальности / дискриминаторе, который начинается на 120 секунде. Т.е. в этот момент полоса перестает изменяться, но флажок pulled еще не поднят, т.к. время втягивания 240 сек. Дальше видно, что после 240 сек. флажок pulled поднимается, и Dll переходит на работу с T = 5 мс, что видно по возросшим коэффициентам фильтра.   
 +
   
 +
  
 
{{wl-publish: 2019-03-29 13:53:44 +0300 | Korogodin }}
 
{{wl-publish: 2019-03-29 13:53:44 +0300 | Korogodin }}

Текущая версия на 16:20, 13 мая 2019

Содержание

[править] Рекомендации по записи экспериментов

Результаты испытаний нужно записывать, чтобы сравнивать текущий результат с тем, что было когда-то и не повторять одинаковые эксперименты.

Желательно записывать следующие данные:

  • дату испытания (в заголовке);
  • номер ревизии PL;
  • номер ревизии PS;
  • экземпляр приемника;
  • условия;
  • цель;
  • ожидаемые результаты;
  • фактические результаты;
  • выводы.

[править] 2019.03.29 - Ночной тест MCR1

  • номер ревизии PL: из bin соответствующей ревизии
  • номер ревизии PS: f819e3f0eb58821bf3dba23844136dcc9b294adc с небольшими изменениями (main тактируются процессорным временем вместо плисовского)
  • экземпляр приемника: MCR1 плата 61;
  • условия: антенна на крыше Е;

Приемник проработал ночь, всё ещё трудится. Забито 60 каналов, в F5 около 50 сигналов.

Сообщений от sendMeas о неадекватном времени нет. Но если посмотреть на F5 пакет, то за это время были проблемы:

  • два соседних пакетика в F5 поменяны местами (два раза такое возникло)
  • пропущена одна секунда полностью (один раз)
  • пропущено 8 секунд (один раз) (вроде бы соответствует проблемам с прерываниями на 930 минуте, там между прерываниями вдруг 4 мс)
20190329 MCR1 F5 depdiff.png

Время возникновения проблем в SRNS F5:

SbsL1SD 20: Wrong (big) dt at 737513.051539 day (436453000.000000), dt =  1.999999/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.064016 day (437533000.000000), dt =  1.999999/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.064039 day (437534000.000000), dt =  1.999999/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.222882 day (451261000.000000), dt =  1.999999/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.222905 day (451262000.000000), dt =  1.999999/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.227662 day (451682000.000000), dt =  8.000007/ 1.000005

Время возникновения проблем в BINR F5 (обрабатывался уже через рабочий день, т.е. выборка длиннее):

SbsL1SD  5: Wrong (big) dt at 737513.227801 day (451682000.000000), dt =  1.999999/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.227801 day (451682000.000000), dt =  1.999999/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.553657 day (479841000.000000), dt =  3.999998/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.553738 day (479849000.000000), dt =  3.999998/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.553819 day (479857000.000000), dt =  3.999998/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.553912 day (479866000.000000), dt =  3.999998/ 1.000005
SbsL1SD 20: Wrong (big) dt at           NaN day (479874000.000000), dt =  3.999998/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.554051 day (479882000.000000), dt =  3.999998/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.554225 day (479911000.000000), dt =  3.999998/ 1.000005
SbsL1SD 20: Wrong (big) dt at 737513.554699 day (480085000.000000), dt =  1.999999/ 1.000005

Проблемы совпадают только в момент жесткого лага, когда в SRNS пропущены 8 секунд.

[править] Пропуск 8 секунд

Сообщения об отправке F5 при пропуске 8 секунд выглядели при этом так:

|N1->55817.263756 DebugR: 1313134.000000        1000.000000     52.000000
|N1->55818.263793 DebugR: 1313134.000000        1000.000000     52.000000
|N1->55819.263959 DebugR: 1313134.000000        1000.000000     53.000000
|N1->55827.263756 DebugR: 1313134.000000        1000.000000     52.000000
|N1->55828.263959 DebugR: 1313134.000000        1000.000000     52.000000

Между сообщениями о выделении эфемерид до инцидента и после - 30 секунд, так что дело не в currCPUTime. Складывается ощущение, что часть пакетов просто ушла в /dev/null


[править] Переставленные местами пакеты

Опять все выглядит так, будто проблема на уровне Protocol-Pipe-Сеть-Pipe-Protocol.


[править] Дальности и т.п.

Другая проблема - GPS L1C/A. Опять выглядит так, как будто действует имитационная помеха. Либо это внутрисистемные помехи почему-то начали так сильно влиять на нас.


[править] 2019.04.01 - Тест MCR1 за выходные

  • номер ревизии PL: из bin соответствующей ревизии
  • номер ревизии PS: 346f03e3a3a85cbfc17eee665bfcc2bf48bf5258
  • экземпляр приемника: MCR1 плата 61;
  • условия: антенна на крыше Е;


Приемник проработал выходные, не упал, в целом всё ок. Оператива держится на уровне 71Мб, как при старте. Оба ядра загружены примерно на 75%.

Код децимации 100 мс main всё ещё сбоит

20190401 MCR1 depF5.png

В GPS опять ложняки по L1CA.

С временем F5 особых проблем нет, только пару раз выпадали на 5 секунд измерения с отдельного спутника (по флагу м.б.).


[править] 2019.04.02 - Новая шина HPP для зеркалирования каналов

  • номер ревизии PL: из bin соответствующей ревизии
  • номер ревизии PS: c938d6a9aab0addd1d2974ec135f1749bc22b72d
  • экземпляр приемника: CLONICUS плата 112;
  • условия: антенна на крыше Е;

Иван запилил DMA

Чтение 120 каналов на старой шине GPP:

20190402 GPP 120.png

Полная замена GPP на HPP заставляет нас два раза запускать DMA

20190402 HPPx2 120.png

Если совмещать GPP с HPP: DMA в основном, GPP для повторного чтения времени.

20190402 HPPx1 120.png

Раза в 3 выиграли по времени, но главное - прирост с увеличением числа каналов стал намного меньше. Думаю, порядка 20 мкс на 100 каналов

Немного изучил свойства clock_gettime(). На вызов функции уходит примерно 600 нс, дискрет значения - 18 мкс в случае Oryx на родном Debian.

Собрали прошивку под Oryx, на загрузке в 60 каналов по небу виден выигрыш первого маркера в 2 раза:

20190403 GHPP Oryx 60ch.png

UPDATE: Время DMA на Клоникусе около 7 мкс на 40 каналов.

[править] 2019.04.05 - Ночной тест MCR1 с HPP и 70 каналами

  • номер ревизии PL: собирался Иваном на ~100 каналов, md5sum 0ab4c9f04bdee4adf3301b5cb8e06b25
  • номер ревизии PS: bb44a4c07d31896915b97947018bab17f6d229c2
  • экземпляр приемника: MCR1 плата 61;
  • условия: антенна на крыше Е;

Убрал дополнительное зеркалирование OCM в RAM, в итоге T1 упал до 30 мкс. В таком режиме число каналов поднял до 70. Приемник проработал ночь, всё ок.


Вывод: теперь мы тащим 70 каналов чуть лучше, чем раньше тащили 60.

Утечки памяти при этом нет, съедает около 71 Мб. Ядро с main загружено на 100%, в основном время исполнения там.


[править] 2019.04.08 - Как мы пережили ролловер GPS

  • номер ревизии PL: собирался Иваном на ~100 каналов, md5sum 0ab4c9f04bdee4adf3301b5cb8e06b25
  • номер ревизии PS: a4aea27ba6dc0ade3fe02227c8d955ab240d77b1
  • экземпляр приемника: MCR1 плата 61;
  • условия: антенна на крыше Е;

Приемник проработал выходные, всё ок. С 6 на 7 апреля случился ролловер GPS! Есть ощущение, что СДКМ его не пережил, слежение упало и больше мы данных не увидели:

|N1->115638.645883  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  4 parity: OK
|N1->115639.646381  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  5 parity: OK
|N1->115640.646621  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string 25 parity: OK
|N1->115641.646049  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string 14 parity: FAIL
|N1->115642.646381  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string 24 parity: FAIL
|N1->115643.311966  169 0R SbsL1SD №  2  CoherentLoss: f:     60 Hz  q: 27 dBHz
|N1->115643.321293  169 0R SbsL1SD №  2  NonCoherentStart: 1554479572.900374 s,     51 Hz, 27 dBHz
|N1->115646.391206  169 0R SbsL1SD №  2  CoherentStart: f:    261 Hz  q: 31 dBHz
|N1->115646.644446  169 0R SbsL1SD №  2  FrameSyncChunk: SBAS string  2 parity: FAIL
|N1->115648.391317  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 4
|N1->115648.591951  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
|N1->115648.659320  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 1 symbs
|N1->115649.399298  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 6
|N1->115649.652353  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
|N1->115652.390303  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 6
|N1->115652.600559  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
|N1->115653.390506  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 8
|N1->115653.650012  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 1 symbs
|N1->115656.600835  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
|N1->115657.390321  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 7
|N1->115657.649994  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
|N1->115658.670490  169 0R SbsL1SD №  2  CoherentLoss: f:    278 Hz  q: 25 dBHz
|N1->115658.680296  169 0R SbsL1SD №  2  NonCoherentStart: 1554479572.900373 s,    296 Hz, 25 dBHz
|N1->115665.840638  169 0R SbsL1SD №  2  NonKoherentLoss: f:   4237 Hz  q:  9 dBHz
|N1->115665.840656  169 0R SbsL1SD №  2  SignalStop: too low SNR
|N1->115665.850351  169 0R SbsL1SD №  2  SignalStop: a reason is not specified
|N1->115684.608097  169 0R SbsL1SD №  2  TrgRangeDopp from    facq: +0.88924617 s +- 129.3 m at    -0 Hz +- 63.4 m/s, snr: 39 dBHz
|N1->115685.167513  169 0R SbsL1SD №  2  TargetInit: tau =  889.2462 ms, f =      -0 Hz, sigma range = 1.292878e+02 m, sigma vel = 6.343122e+01 m/s, T= 1.0 ms, NN=40
|N1->115685.167513  169 0R SbsL1SD №  2  StartTracking: freq:     -0 Hz, snr: 30 dBHz corr  67
|N1->115685.168269  169 0R SbsL1SD №  2  SgnTimeCorrReq: dEpoch=0 dSec=529251 dWeek=1213, not final from aiming
|N1->115685.168804  169 0R SbsL1SD №  2  SgnTimeCorrDone: tchan=4391 dEpoch=0->0 dSec=0->529251 dWeek=0->1213
|N1->115685.168859  169 0R SbsL1SD №  2  SgnTimeCorrReq: dEpoch=0 dSec=5 dWeek=0, not final from aiming
|N1->115685.170039  169 0R SbsL1SD №  2  SgnTimeCorrDone: tchan=529251001 dEpoch=0->0 dSec=529251->529256 dWeek=1213->1213
|N1->115686.340426  169 0R SbsL1SD №  2  NonCoherentStart: 0.889249 s,      1 Hz, 36 dBHz
|N1->115691.460345  169 0R SbsL1SD №  2  CoherentStart: f:    104 Hz  q: 31 dBHz
|N1->115692.970400  169 0R SbsL1SD №  2  SymSyncDone
|N1->115694.650215  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 1 symbs
|N1->115694.970197  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 4
|N1->115695.970400  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 6
|N1->115696.080219  169 0R SbsL1SD №  2  CoherentLoss: f:     98 Hz  q: 23 dBHz
|N1->115696.090412  169 0R SbsL1SD №  2  NonCoherentStart: 0.889249 s,     97 Hz, 23 dBHz
|N1->115701.200599  169 0R SbsL1SD №  2  CoherentStart: f:    179 Hz  q: 31 dBHz
|N1->115701.592080  169 0R SbsL1SD №  2  Debug: 23123213.000000         0.000000        4.000000        0.000000        0.000000
|N1->115701.592485  169 0R SbsL1SD №  2  Debug: 23123213.000000         0.000000        4.000000        0.000000        0.000000
|N1->115703.210608  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 7
|N1->115703.250292  169 0R SbsL1SD №  2  CoherentLoss: f:    207 Hz  q: 26 dBHz
|N1->115703.260504  169 0R SbsL1SD №  2  NonCoherentStart: 0.889248 s,    218 Hz, 26 dBHz
|N1->115706.330730  169 0R SbsL1SD №  2  CoherentStart: f:    216 Hz  q: 30 dBHz
|N1->115706.591711  169 0R SbsL1SD №  2  Debug: 23123213.000000         0.000000        4.000000        0.000000        0.000000
|N1->115707.332776  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  1 <-  1, errcntr = 9
|N1->115709.650215  169 0R SbsL1SD №  2  FrameSyncErr: pream position = 0 symbs
|N1->115710.340481  169 0R SbsL1SD №  2  SymSyncErr: rep =  0, sync =  1 <-  0 <-  0, errcntr = 9
|N1->115710.410597  169 0R SbsL1SD №  2  CoherentLoss: f:    190 Hz  q: 25 dBHz
|N1->115710.420403  169 0R SbsL1SD №  2  NonCoherentStart: 0.889247 s,    191 Hz, 25 dBHz
|N1->115725.772789  169 0R SbsL1SD №  2  NonKoherentLoss: f:  -3227 Hz  q: -inf dBHz
|N1->115725.772789  169 0R SbsL1SD №  2  SignalStop: too low SNR
|N1->115725.783129  169 0R SbsL1SD №  2  SignalStop: a reason is not specified
|N1->115727.072551  169 0R SbsL1SD №  2  TrgRangeDopp from    facq: +0.35804310 s +- 129.3 m at    -0 Hz +- 63.4 m/s, snr: 44 dBHz


RTKLIB живее всех живых, проверил и RTKPOST, и CONVBIN:


[править] 2019.04.08 Perf и Flamegraph

Профилирование модели с помощью perf. На русском почитать можно тут.

Запись лога:

perf record -g -F 99 -- ./sim

Преобразование в формат flame graph'а:

perf script | ./stackcollapse-perf.pl > out.perf-folded

Построение flame-диаграммы:

./flamegraph.pl out.perf-folded > perf-kernel.svg

Открываем svg в браузере и наслаждаемся:

chromium-browser ./perf-kernel.svg

Видим, что в модели всё время уходит на формирование коррелированных шумов квадратур, надо убрать там QS Matrix:

20190408 flame.png

В обработчике прерываний одеяло на себя перетягивают updMeas и updTracking, причем куча времени уходит на isTracking:

20190408 flame2.png


[править] 2019.04.10 - Первый ночной тест Клоникуса

  • номер ревизии PL: 948f878ff5cba24bf1948d6b52569d8471e25b94 собирался мной на 40 каналов
  • номер ревизии PS: f35f6003b512ec084eca3691b811a62dff111f3e (с небольшими изменениями)
  • экземпляр приемника: CLONICUS плата 112;
  • условия: антенна на крыше Е;

В F5 пропущена одна точка, примерно в середине лога. Причем пакет дошел, но в текстовый файл записался с ошибками - время 0, номер недели -5000, в первых трех сигналах мусор. Т.е. начало пакета поломано.

Если смотреть глазами ход 0x003, то время пакетов заметно подлагивает. Если запустить WireShark (ip.addr == 192.168.0.112 && tcp.port == 3490 && ip.len > 166 && data.data[6] == 0xF5), то тоже видны проблемы:

20190410 CLO2 HPP WS F5diff.png


[править] 2019.04.12 - Проверка работы Dll

  • номер ревизии PL: oryx.bit версия 5.5 (проект bin, коммит 2887efc0)
  • номер ревизии PS: trcv скомпилен из коммита 22be8d57 ветки multiInputCorr (где пилится многовходовый коррелятор)
  • экземпляр приемника: Oryx IP 60, наш MCR;
  • условия: работа по имитатору SMBV;

Сценарий SMBV - Static, один спутник ГЛОНАСС №5, дальность руками забита на 19 000 км. Level = -110 дБм.

Исследуется появление переходного процесса в измерениях псевдодальности при "втягивании" Dll. Исследование проведено как на железке, так и на модели в той же версии PS. В модели выключены "возмущения" шкалы времени.

Чтобы не крутить несколько ручек, пока расстройку E-L не трогаем, трогаем только полосу. Настройки режима "втягивания" Dll следующие:

sgnrcvgln.cpp :

    dll->setTpullin(240.0);
    dll->setDftPullin(1.0);
    dll->setDftEnd(0.025);

    switch (getType()) {
    case GlnL1OF:
        msg = new SgnMsgLxOF(msg0x3);
        frame = new FrameSyncGlnLxOF(Isym, Qsym, ksym, 200, 3, msg0x3);
        df_Lit = 0.5625e6;
        f0_0 = 1602.0e6;
        setTep(1);
        setOverlay(0, 0);
        setND(10);
        setChipRate(0.511e6);
        dll->setTauZero(LightC / ChipRate);
        dll->setDeltaTPullin(0.5*dll->getTauZero());
        dll->setDeltaTCohEnd(0.5*dll->getTauZero());
        dll->setDeltaTNonCohEnd(0.5*dll->getTauZero());
        NC_locking = 5;
        setLit(GlnsLits[ns]);
        break;

dll.cpp :

dll::update(....)

    if (!pulled) {
        if (t < Tpullin/2){
            dft = getDftPullin() - 2*(getDftPullin() - getDftEnd()) * t / Tpullin;
        }
    } else if (getDftMode() != bw_hold) {
        // Выбор полосы по таблице в зависимости от с/ш
    }


Состояние Dll "принтфится" в SgnRcv::updMeas2() :

printf("%f %f %f %f %f %f %f %f %.15f\n", dll->gett(), dll->getDft(), getDeltaT(), 10*log10(q), dll->getSdt(), dll->getUdt(), dll->getKt()[0], dll->getKt()[1], fix_range);


Поддержка Dll от Pll выключена в функциях nonCoherent() и coherent().

Итого имеем время втягивания 240 с., но конечная полоса устанавливается в 2 раза быстрее и далее ждет. На 240 секунде поднимается флажок pullin и Dll переходит на работу по T = 5 мс.

Полученные графики с Oryx:


Что смущает - переходной процесс в дальности / дискриминаторе, который начинается на 120 секунде. Т.е. в этот момент полоса перестает изменяться, но флажок pulled еще не поднят, т.к. время втягивания 240 сек. Дальше видно, что после 240 сек. флажок pulled поднимается, и Dll переходит на работу с T = 5 мс, что видно по возросшим коэффициентам фильтра.



[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты