3.3 KiB
3.3 KiB
I am stuck again, I am unsure about the sensor data. Should I make it look like this?
{
state: undefined,
batteryLevel: undefined,
flyState: undefined,
emergency: undefined,
altitudeMeters: undefined,
frontBackDegrees: undefined,
leftRightDegrees: undefined,
clockSpinDegrees: undefined,
frontBackSpeed: undefined,
leftRightSpeed: undefined,
upDownSpeed: undefined,
.flying: undefined,
videoEnabled: undefined,
visionEnabled: undefined,
controlAlgorithm: undefined,
altitudeControlAlgorithm: undefined,
startButtonState: undefined,
controlCommandAck: undefined,
cameraReady: undefined,
travellingEnabled: undefined,
usbReady: undefined,
navdataDemo: undefined,
navdataBootstrap: undefined,
motorProblem: undefined,
communicationLost: undefined,
softwareFault: undefined,
lowBattery: undefined,
userEmergencyLanding: undefined,
timerElapsed: undefined,
magnometerNeedsCalibration: undefined,
anglesOutOfRange: undefined,
tooMuchWind: undefined,
ultrasonicSensorDeaf: undefined,
cutoutDetected: undefined,
picVersionNumberOk: undefined,
atCodecThreadOn: undefined,
navdataThreadOn: undefined,
videoThreadOn: undefined,
acquisitionThreadOn: undefined,
controlWatchdogDelay: undefined,
adcWatchdogDelay: undefined,
comWatchdogProblem: undefined,
emergencyLanding: undefined,
}
Or like this:
{
batteryLevel: undefined,
controlStatus: undefined,
flyStatus: undefined,
altitudeMeters: undefined,
gyros:{
frontBack: undefined,
leftRight: undefined,
clockWise: undefined,
},
speed: {
frontBack: undefined,
leftRight: undefined,
upDown: undefined,
}
status: {
flying: undefined,
videoEnabled: undefined,
visionEnabled: undefined,
controlAlgorithm: undefined,
altitudeControlAlgorithm: undefined,
startButtonState: undefined,
controlCommandAck: undefined,
cameraReady: undefined,
travellingEnabled: undefined,
usbReady: undefined,
navdataDemo: undefined,
navdataBootstrap: undefined,
motorProblem: undefined,
communicationLost: undefined,
softwareFault: undefined,
lowBattery: undefined,
userEmergencyLanding: undefined,
timerElapsed: undefined,
magnometerNeedsCalibration: undefined,
anglesOutOfRange: undefined,
tooMuchWind: undefined,
ultrasonicSensorDeaf: undefined,
cutoutDetected: undefined,
picVersionNumberOk: undefined,
atCodecThreadOn: undefined,
navdataThreadOn: undefined,
videoThreadOn: undefined,
acquisitionThreadOn: undefined,
controlWatchdogDelay: undefined,
adcWatchdogDelay: undefined,
comWatchdogProblem: undefined,
emergencyLanding: undefined,
},
}
So this continue to be hard. I am wondering:
- should I rename 'sensors' to 'navdata' ?
- should my option sparsers "augment" the data object, or produce their own results
The latter questions seems more interesting, so let's contrast the approaches.
a) Augment data
Pro:
- No need to "merge" / easier to achieve the combined data structure I want
Con:
- Worse to test
- Bad design
b) Return data
Pro:
- Clean design
- Easy to test
Con:
- Needs to merge the data structure
- Final data structure is not documented in one place
- Missing options will cause missing elements in final data structure