Git Product home page Git Product logo

marsrover's People

Contributors

dependabot[bot] avatar mo3pheus avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

marsrover's Issues

Fix Radio

Fix Radio - if positionSensor.comsDelay throws an Exception use last known comsDelay

Rover shows sleeping in hibernating mode.

  1. SleepBreather's rover instance is not volatile.
  2. There is no hard interrupt to the sleepBreather upon rover wakeUp().

Result is that sleepingAnimation is shown even if the batteryMonitor has put the rover into sleeping state.

SCLK and PositionSensor get out of sync

Problem: The SpacecraftClock and PositionSensor for the Rover can get out of sync ( a minute apart or more ).

Cause: The SpacecraftClock and PositionSensors run on separate threads and get kicked off at different times, Over a period of time due to thread synchronization and waits for lock acquisition, they can get out of sync. If the timeScaleFactor is 60 - these discrepancies can add up quickly.

Solution: There is a command you can issue to the Rover for clockSynchronization - this syncs up the spaceCraftClock and the positionSensor. Unfortunately right now the rover waits for this command to be explicitly issued from the commandCenter.

Ideally the rover would have a tune up thread that measures the difference between the spaceCraftClock and the positionSensor Clock and triggers a sync if that difference gets above a certain threshold.

Solution II - tried implementing this but it failed due to thread sync issues. But ideally you could have the PositionSensor as an observer to the spaceCraftClock - i.e. when the spaceCraftClock updates, so does the positionSensor. This makes a cleaner solution than having the positionSensor ticking on a separate thread and dependent upon periodic forced syncs. The clock Syncs are not without their cost - the pacemaker and roverGarbageCollector are both restarted when this happens. Also conceptually the spaceCraftClock should be the final word upon what time it is on the spaceCraft. This is the computer's internal clock and all components rely upon it for their time. Look to how the TelemetrySensor is tied to the trackingAnimationEngine to see how this could be done.

Things to learn from this issue:

  1. Thread synchronization.
  2. Usage of the marsConfig properties file in configuring the rover.
  3. Understanding of the timeScale factor that affects all rover communications.
  4. If SolutionII is selected, the observer design pattern.

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.