It was broken for South/West values.
Added additional tests for maximum long/lat values.
Requires field testing to make sure values are correct on the telemetry
display.
full gyro scale is used now
and a new pid with float calculations was added based on PIDrewrite
eeprom size was also increased from 1kB to 2kB
Conflicts:
src/config.c
src/drivers/accgyro_l3g4200d.c
src/drivers/accgyro_mpu3050.c
src/drivers/accgyro_mpu6050.c
src/flight_imu.c
src/mw.c
src/mw.h
src/serial_cli.c
src/serial_msp.c
src/utils.c
src/utils.h
BOXNAMES is repeated in case the first transmission is never received.
Each time sendMspTelemetry is called it executes one and only one
command. There was nothing wrong with the old approach which sometimes
sent more than one command each time sendMspTelemetry was called but
this is simpler and there is far less duplication.
The existing implementation that was ported over was trying to work with
different values. By writing a unit test for the code that stores
values in GPS_coord it was possible to have known values which could
then also be used to write a unit test for the HoTT telemetry which
finally enabled production code to be written.
Hopefully it will work, unable to test further since my GPS unit is
playing up.
Also support FrSky 1khz RSSI. See documentation also added in this
commit.
This commit also cleans up the PWM mapping code. 'mask' didn't need to
be a mask and it wasn't possible to add another 'type' since there were
only 4 possible values when it was a mask and they were already defined.
Combined with switching to using 16 bits instead of 8 for the mapping
configurations, it's now possible to have 256 types instead of 4 at the
expense of a few bytes of flash.
Moved the RSSI calculation into rx_common.c, previously it was in the
main loop.
The index is not really a user concern and leads to confusion. gps
baudrate is not set like any other baud date and the determination of an
appropriate index is hidden from the user.
If the user specifies a baudrate that is not supported the default index
is used which is current the index for 115200.
This also allows GPS to work on softserial ports at up to 19200.
The old code was using f.ACC_CALIBRATED to mean 'flash the warning led'
and 'prevent arming'
There was another flag called f.OK_TO_ARM which really meant 'prevent
arming after failsafe unless using a switch to arm' - this meant the
comment in the code was incorrect since it did not mention the switch.
There was code which every ~71 minutes would set f.ACC_CALIBRATED to
FALSE and would toggle the LED, even when flying.
There was code that was run during every cycle that did not need to be
run when armed.
There was code that was run during every cycle which did not need to be
run when waiting for calibration to finish.
The warning light was toggled regardless of actual accelerometer
calibration state.
This commit fixes all that and prevents the user from arming after a
failsafe landing until the system is reset, regardless of wether a
switch is used to arm or not.
This commit also flashes the warning led during barometer calibration
and will not let you arm until it has completed.
Add a 5 second delay on startup to failsafe to prevent failsafe from
activating in the case of TX/RX gear with long bind procedures before
they send out valid data.
Failsafe now only prevents re-arming if a landing was forced.
In the case when you power on your RX without your TX on the beeper
sounds and failsafe warning ligts are activated. When the FC then
detects a signal the lights go off and you can then arm.
There's a number of changes in this commit, all related.
Improved efficiency of preparing HoTT messages.
All HoTT message data is no-longer reset each time, going forward old
data is re-used unless it is updated. This should help with GPS
co-ordinates too since they were erased from subsequent responses when
ideally the last-known co-ordinates should be transmitted each time.
The previous update was sending one too many bytes due to the
aligned/padded uint16_t values in the HoTT data structures. There were
two solutions, use #pragma to pack the structure or avoid larger types
in the structures, the latter made sense and results in more portable
code since it's a wire format.
Updated HoTT structures to use latest message structure from Ardupilot.
Currently the variables are in underscore_format, that will likely
change in future.
Cleaned up and deleted old ported code that was #ifdef'd out. Some test
code still remains for now. This will be deleted in due course.
Introduced bitmask for EAM alarm flags.
Corrected documentation.
per function.
Note: a future commit will enable MSP to work on additional ports in
order to support simultaneous combinations of Serial/Bluetooth
configuration, OSD, RX_MSP on otherwise unused ports.