Purpose
determine signal strength from different sources / GPIO pins
Considerations
Need to keep functions generic for GPIOs
What is providing the RSSI signal? What is the form of the data (Need to ask Aidan Bowers)
Related hardware: An RC Link
RFD900.
https://files.rfdesign.com.au/Files/documents/Software manual.pdf
Need to see how RFD900 sends RSSI signals and how it interfaces with the actual flight controller. Then can determine what signal needs to be "decoded"
Will the PPM driver be what calls the RSSI module?
(2021 year was PWM, this year 2022 will need to look into RFD900)
We are no longer using singleton, need to get rid of that
Functions:
Normalized and unnormalized function returning signal strength
Threshold function returning a bool representing ‘good signal' and bad signal, or a function returning one out of a scale of judgements, e.g. ‘no signal', ‘bad signal’, ’ok signal' , ‘good signal', 'strong signal’ represented as an integer
For pull request:
Make LOS/RSSI branch (after weekend)
Research
RSSI signal can come as analog or PWM
Ardupilot implementation reference
RSSI.cpp calls on AnalopIn.cpp class for its ‘channel’ function
AnalogIn.cpp has ‘channel’ function which returns a pointer to an AnalogSource object by calling the ADCSource object constructor
(ADCSource inherits from AnalogSource)
https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_HAL_SITL/AnalogIn.cpp
AnalogSource is an abstract class, defined in a different AnalogIn file
AnalogSource constructor requires inputting a pointer to a SITL_State object
In RSSI.cpp, AnalogIn object is actually a member variable of AP_HAL::HAL.h class
A hal.h object called hal is accessed using ‘extern’ keyword
0 Comments