Coder Social home page Coder Social logo

oscillatord's People

Contributors

abulimov avatar agagniere avatar charlesparent avatar fweimer-rh avatar hugofolcher avatar jachenilleau avatar jsoref avatar leoleovich avatar mattlrtz avatar pmazzini avatar vvfedorenko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

oscillatord's Issues

Oscillatord 3.5 does not show "disciplining" parameters for CLS timecard.

After updating to Oscillatord 3.5 we can no longer get the "disciplining" parameters for CLS time card. We check if one of the sub parameters "ready_for_holdover" is true or false and based on the result we start the holdover test or continue disciplining the Time Card.
Even though we set "disciplining: false" in oscillatord config file, can the "ready_for_holdover" parameter be added regardless of the config file parameters?

image

Survey in error is not updated if GNSS signal is lost

Hi guys,
We noticed an issue when a GNSS antenna signal is instantly lost (disconnected or died) we update the number of satellites, but not the survey in error which stays on the previous level forever, giving an impression that everything is fine:

06:22:11 DEBUG GNSS data: Fix no fix (1), Fix ok: False, satellites num 0, survey in error: 1.07, antenna status: 4......

Ideally, the survey in should be updated to reflect the issue.
Thank you!

Start monitoring socket early

It takes a while to start monitoring socket after oscillatord restart and until it's up we see "connection refused" which is easy to confuse with oscillatord being down.
Please make sure we have monitoring socket up at an earlier stage.

PHC returns time in 1970

We see a situation when oscillatord doesn't report any errors, but at the same time /dev/ptp2 returns time in 1970

Oscillatord can't init properly whitout gnss pps

  • Condition for oscillatord to be initialized properly are too strict, with no pps gnss we are locked in a loop until we have one, so (for instance), as a side effect, oscillatord main loop never start and some of the features aren't working properly, here we noticed that gnss is not connected to shared data exposed by monitoring-socket so ubx data are fetched but monitoring keeps sending dummy/default values.

  • We need to segregate what's about disciplining, which may indeed stay blocked in init without good conditions, and what's about basic daemon feature (here, monitoring and exposing system status properly), which should always be working even with poor conditions.

To fix GNSS case, a good start could be modifying/moving/deleting the loop (do ... while ...) line 386 in oscillatord.c and adapt the code consequently, there are probably other similar issues in the code.

Can't kill oscillatord in some states

In case, we wait gnss data for init, the software can't react to SIGNAL:

12:09:46 DEBUG Phasemeter: GNSS, ts 1679051385507904405
12:09:46 DEBUG Phasemeter: INT , ts 1679051386000000000
12:09:46 DEBUG Phasemeter: phase_error: -492095595ns
12:09:47 DEBUG UBX-TIM-SVIN: dur: 814, meanX 420386803, meanZ 16332503, meanZ 477796615, meanV 348072, obs 790, valid 0, active 1
12:09:47 DEBUG GNSS data: Fix 3D (5), Fix ok: True, satellites num 32, survey in error: 0.59, antenna status: 2, valid 1, time 1679051387, leapm_seconds 18, leap_notify 0, lsChange 0, timeToLsChange -40993787, lsSet: True, QErr(n) 0, qErr(n-1) 0
12:09:47 WARN  Could not tai time from gnss, please check GNSS Configuration if this message keeps appearing more than 25 minutes

Probably in init state we can't kill the soft properly otherwise init can last forever whitout proper gnss conditions orwhitout mro lockness

Finally there is a timeout but maybe we could do better
[email protected]: State 'stop-sigterm' timed out. Killing.

monitoring: Don't stick on IPv4-only solution

listen_inet_socket() uses inet_addr() to resolve string to sockaddr_in. This limits us to use IPv4 addresses only. This is hard limitation in 2023, let's remove it and use proper interfaces like getadrinfo()

art_integration_in_server_test is broken in oscillatord version using serial interface

It seems like art_integration_in_server_test version using serial interface to mRO50 is currently broken. Here is the observation summary:

Items Timecard Driver ART Firmware Oscillatord disciplining-minipod art_integration_in_server_test
1 3rd Aug 0.0.15 3.3.6 3.3.6 FAILED
2 3rd Aug 0.0.13 3.3.6 3.3.6 FAILED
3 3rd Aug 0.0.15 3.2.4 3.2.4 PASSED
4 3rd Aug 0.0.13 3.2.4 3.2.4 PASSED
5 3rd Aug 0.0.13 3.3.7 3.3.7 FAILED
6 3rd Aug 0.0.15 3.3.7 3.3.7 FAILED

Ublox is reset on oscillatord restart

rx0: Connecting to receiver at port /dev/ttyS4@115200
rx0: Receiver detected: TIM 2.20 (ZED-F9T)
16:57:05 DEBUG Receiver version successfully detected ! Major is 2, Minor is 20
16:57:06 DEBUG Config (CFG-TP-ANT_CABLEDELAY (0x30050001, I2) = 50 [0.000000001s]) differs from current config (CFG-TP-ANT_CABLEDELAY (0x30050001, I2) = 600 [0.000000001s])
16:57:06 INFO  Receiver not configured to default configuration, starting reconfiguration
16:57:06 INFO  Configuring receiver with ART parameters...
rx0: Sending 604 key-value pairs in 11 UBX-CFG-VALSET messages
rx0: Sending UBX-CFG-VALSET 1/11 (64 items: 1..64/604, 338 bytes, RAM,BBR,Flash, transaction begin)
rx0: Sending UBX-CFG-VALSET 2/11 (64 items: 65..128/604, 332 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 3/11 (64 items: 129..192/604, 332 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 4/11 (64 items: 193..256/604, 332 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 5/11 (64 items: 257..320/604, 332 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 6/11 (64 items: 321..384/604, 332 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 7/11 (64 items: 385..448/604, 376 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 8/11 (64 items: 449..512/604, 381 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 9/11 (64 items: 513..576/604, 417 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 10/11 (28 items: 577..604/604, 173 bytes, RAM,BBR,Flash, transaction continue)
rx0: Sending UBX-CFG-VALSET 11/11 (no items, 12 bytes, RAM,BBR,Flash, transaction end)
16:57:07 INFO  Successfully reconfigured GNSS receiver
16:57:07 DEBUG Performing hardware reset
rx0: Doing receiver reset: Hardware reset
rx0: Receiver detected: TIM 2.20 (ZED-F9T)
16:57:10 INFO  hardware reset performed
16:57:10 INFO  No preferred timescale, assuming GNSS receiver is correctly set
rx0: Sending 1 key-value pairs in 1 UBX-CFG-VALSET messages
rx0: Sending UBX-CFG-VALSET 1/1 (1 items: 1..1/1, 18 bytes, RAM, no transaction)
rx0: Doing receiver reset: Start GNSS
rx0: Receiver detected: TIM 2.20 (ZED-F9T)

GNSS configuration update

Right now it takes up to 12 minutes to reconfigure GNSS receiver and get first signal from it. But actually we need no reconfigure it once after host power up. It would be great if oscillatord could check GNSS receiver configuration at start up and apply only difference to it. It will greatly reduce the speed up time in case of software restart

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.