1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-20 14:55:18 +03:00
Commit graph

35 commits

Author SHA1 Message Date
Dominic Clifton
f7c38af7fc Initial commit for implementation of autotune. 2014-05-27 18:11:55 +01:00
Lukas S
cffdfb782c new Baseflight PID
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
2014-05-25 15:31:30 +01:00
Dominic Clifton
88254fa736 Refactor telemetry MSP.
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.
2014-05-25 00:44:16 +01:00
Dominic Clifton
e5c5339306 Merge branch 'master-cleanflight-msptelemetry' of github.com:treymarc/baseflight into treymarc-master-cleanflight-msptelemetry
Conflicts:
	src/serial_msp.h
	src/telemetry_common.h
2014-05-25 00:32:41 +01:00
Dominic Clifton
02a8e993f5 Use first MSP port opened for now, instead of the last one.
This works with the default configuration and when also enabling MSP on
soft serial 1/2 while leaving the uart1 scenario at it's default.
2014-05-22 14:13:02 +01:00
Dominic Clifton
51d28e19aa Update serial port code so that it's possible to open more than one port
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.
2014-05-22 12:41:07 +01:00
Dominic Clifton
d97722be8e Formatting bitmask creation code for MSP status response. 2014-05-15 02:39:24 +01:00
Dominic Clifton
21207ca940 Improvement: Add support for upto 18 channels. Allow RSSI to be read
from any channel, not just AUX1-4.

See documentation changes in this commit.
2014-05-14 19:23:27 +01:00
treymarc
cabc57774c format code properly
match the comment from pullrequest about spacing
remains : some hand alignment for comment and wrong /** */ usage.
Conflicts:

	src/board.h
	src/buzzer.c
	src/config.c
	src/drivers/serial_common.h
	src/drivers/system_common.c
	src/drv_gpio.h
	src/drv_pwm.c
	src/drv_timer.c
	src/drv_uart.c
	src/flight_imu.c
	src/mw.c
	src/serial_cli.c
2014-05-11 18:04:05 +01:00
Dominic Clifton
1777d8feda First cut of configurable serial port functionality.
Currently port usage is hard-coded to the default port layout, cli
commands are coming in a future commit.

This decouples all code from the global 'serialPorts' structure which
has been removed.  Any code that needs to use a serial port can use
findOpenSerialPort() and openSerialPort() and maintain it's own
reference to the port.

Ports can switch between functions.  e.g. by default
cli/msp/telemetry/gps
passthrough all use USART1.  Each port maintains it's current function.
see begin/endSerialPortFunction.

There are only certain combinations of serial port functions that are
supported, these are listed in serialPortFunctionScenario_e.

This commit also adds a few 'static' keywords to variables that should
have been.

There a a few other minor fixes and tweaks to various bits of code that
this uncovered too.
2014-05-09 23:39:10 +01:00
Dominic Clifton
d352c68c9b Renaming angleInclination_t to rollAndPitchInclination. renamed angle
to inclination.
2014-05-05 17:45:46 +01:00
Dominic Clifton
ddd322fb9f Adding test for the downwards thrust direction logic added in
495c6b8f73.
2014-05-05 17:06:20 +01:00
treymarc
9e8b05dc0e add serial_rx msp
Conflicts:

	Makefile
	src/board.h
	src/main.c
	src/mw.h
	src/serial_cli.c
2014-05-03 18:20:17 +01:00
Dominic Clifton
4febeb3969 Ported some I2C code from AQ32PlusF3 which itself looked ported from the
STM32 examples.
2014-04-28 19:18:57 +01:00
Dominic Clifton
cb63f6e2b5 Remove telemetry_*.c's dependency on mw.h/board.h.
Finally, the only dependency on mw.h/board.h is now mw.c itself.
2014-04-24 01:44:58 +01:00
Dominic Clifton
695db3523a Remove flight_mixer.c's dependency on mw.h/board.h.
This is a large commit, from the commit it is clear that the mixer has
many dependencies, this is expected since it is central to the
application.

To achieve the decoupling many master config and profile members had to
be moved into structures.

Relocated throttle/pitch curves into rc_curves.c/h since it has nothing
to with rx code, this fixed the dependencies inside the rx provider
files.
2014-04-24 00:18:24 +01:00
Dominic Clifton
bb91b1f560 Remove serial_msp.c's dependency on mw.h/board.h. 2014-04-23 21:38:03 +01:00
Dominic Clifton
aa84439b21 Disambiguate MAX_MOTORS and MAX_SUPPORTED_MOTORS
Achieved by renaming MAX_MOTORS to MAX_PWM_MOTORS

Disambiguate MAX_MOTORS and MAX_SUPPORTED_SERVOS
Achieved by renaming MAX_SERVOS to MAX_PWM_SERVOS

It now shows there is a dependency on the pwm driver if MAX_PWM_* is
used.

Coupled pwm_common and timer_common by using USABLE_TIMER_CHANNEL_COUNT
since the current pwm driver and timer driver is only usable by the
STM32F103.
2014-04-23 21:04:39 +01:00
Dominic Clifton
a5f0999c26 Remove serial_cli.c's dependency on mw.h/board.h.
Rename yawdeadband to yaw_deadband to match other variables/cli
commands.

Fix a couple of usages of MAX_MOTORS where MAX_SUPPORTED_MOTORS should
be used instead.
2014-04-23 20:42:38 +01:00
Dominic Clifton
fbfb75b24a Remove sensor_acceleration.c's dependency on mw.h/board.h.
In doing so accelerometer sensor and trim code had to be cleaned.
Added a new method to buzzer.c to avoid exposing toggleBeep.
Renamed current_profile to current_profile_index to avoid confusion.
2014-04-22 19:41:46 +01:00
treymarc
b14b058fa0 add msp telemtry 2014-04-22 13:48:57 +02:00
Dominic Clifton
2c80094b0e Remove gps_common.c's dependencies on the mw.h/board.h.
Moved some GPS code from mw.c into gps_common.c.
Moved pid values into a pidProfile_t structure; this was done so that
gps_common.c does not have a dependency on config_profile.h.
pidProfile_t lives in flight_common.h now.
Moved gps profile settings from profile_t into gpsProfile_t for the same
reason.
Removed gps_common.c's dependency on masterConfig_t by passing needed
variables into gpsInit().
2014-04-22 00:37:35 +01:00
Dominic Clifton
f8d0dd98f7 Split config_storage.h into config_master.h and config_profile.h to
separate concerns and help reduce and clarify dependencies.

cfg and mcfg are too similarly named and are not obvious.  Renamed cfg
to currentProfile and mcfg to masterConfig.  This will increase source
code line length somewhat but that's ok; lines of code doing too much
are now easier to spot.
2014-04-21 23:08:25 +01:00
Dominic Clifton
bd95c38ff0 Cleanup EEPROM reset and validation methods so that it is obvious what
the code is doing.  There are now no EEPROM read/write/reset/verify
methods that take any arguments which removes magic boolean variables
from method signatures.

This also removes duplicate code in the cliDefaults and cliSave commands
which results in smaller code also also due to the deduplication of a
reboot message.
2014-04-21 01:36:06 +01:00
Dominic Clifton
a012cb1c82 Decouple reading EEPROM from writing EEPROM. Now writeEEPROM() does
only what it's name implies and it's method takes no arguments.  This
avoids the 0/1 magic numbers which was a flag to decide whether the user
should be notified after the EEPROM has been read (!).

Introduced a method called readEEPROMAndNotify() which is used in all
cases where writeEEPROM(1) was previously called.

Additionally this avoid re-reading the profile when the reboot command
is issued which speeds up reboots.

Finally this avoid needless comments because the code tells you now what
it is going to do.
2014-04-21 01:18:15 +01:00
Dominic Clifton
3daaf66b14 Removed profile storage code from writeEEProm() to remove the boolean
flag from the method signature.  Now it is clear when the current
profile needs to be stored.
2014-04-21 01:02:53 +01:00
Dominic Clifton
e969d184e6 decouple failsafe from the rest of the system.
Note: the pwm_common driver has a dependency on the main failsafe code,
the solution is probably to move some of the code into rx_pwm.
2014-04-21 00:46:16 +01:00
Dominic Clifton
c7efcc0521 Merge remote-tracking branch 'multiwii/master' into project-structure-alternative 2014-04-19 01:12:13 +01:00
Dominic Clifton
a7e4c859bd decouple cli/msp from each other. relocated non-msp code into
serial_common.c/h. decouple runtime_config from serial ports.  decouple
buzzer from serial ports.  decouple opening of the main serial port from
the msp code.  decouple serial rx providers from runtime_config.  rename
core_t to serialPorts_t since it only contained serial ports.  It's now
clear which files use serial ports based on the header files they
include.
2014-04-19 01:01:31 +01:00
Dominic Clifton
799844d933 Provide temporary support for old clients that try and send a channel
index instead of a servo middle when using MSP_SET_SERVO_CONF.

Old GUI clients can still be used to SET channel forwarding, but cannot
be used to READ the status of channel forwarding until they are updated
to use MSP_CHANNEL_FORWARDING/MSP_SET_CHANNEL_FORWARDING.

To the user it will mean their GUI may not match the stored
configuration.  However there is no way to DISABLE channel forwarding
other than a reset if they have enabled it using an old client.

This situation is not ideal, but without this commit it would mean that
bad data could be stored and used incorrectly by baseflight if a user
enables channel forwarding using an old client.
2014-04-18 20:51:16 +01:00
Dominic Clifton
b8e7c2d14f Fix servo middle/channel forwarding variable re-use. Adds a new
capability flag which is returned by MSP IDENT (CAP_CHANNEL_FORWARDING).
Adds two new MSP commands that are specifically for configuring channel
forwarding (MSP_CHANNEL_FORWARDING/MSP_SET_CHANNEL_FORWARDING).  Servo
'middle' and 'forward from channel' are now stored independently, as
they probably should always have been.
2014-04-18 19:19:37 +01:00
Dominic Clifton
a85bfa51e3 Remove config.c's dependencies on the mw.h/board.h files. Moved some RX
code into rx_common.c. Moved some GPS code into gps_common.c.  Isolated
some GPS functions into gps_common.c that were called from mw.c/loop().
moved gimbal defines into gimbal.h.  Moved sound & light code into
statusindicator.c
2014-04-18 12:13:37 +01:00
Dominic Clifton
89612bd881 De-couple battery code.
This fixes a bug where buzzerFreq could be uninitialised before it's
use.
This improves performance by only checking whether to sound the battery
alarm after the battery voltage has been recalculated.
There were unused battery beep codes which have been deleted to save
code size.
Configuration structure extracted from mw.h into config.h.
Moved mixer configuration structures into flight_mixer.h.
Added a build_config.c in order to decouple pwm_common.h from config.h.
Finally, battery configuration values now live in a batteryConfig
structure which means that battery.c does not depend on config.h and all
of it's dependencies.

Fixed the use of plurals on defines that were not collection objects.
PIDITEMS and CHECKBOXITEMS are now PID_ITEM_COUNT and
CHECKBOX_ITEM_COUNT.
2014-04-17 16:36:01 +01:00
Dominic Clifton
38ec0b6080 Update gpio/ledring drivers so they do not include "board.h". It is now
clear what all gpio/ledring drivers need to compile and what was
unnecessarily included before.
 
In attempting this it was clear that ledring had a dependency on the
multiwii code, this was removed by passing the led status update method
the values it needs.

It also turned out that the ROLL/PITCH defines were coming from
rc_alias_e and much unrelated code is coupled to these defines.  This
commit also includes some cleanups relating to that problem.
2014-04-17 13:56:23 +01:00
Dominic Clifton
3bd4cd2ed2 Use slightly flatter directory structure since some developers did not
like too many folders.
Extracted code from some files into separate files to fit with the new
layout.
2014-04-08 22:07:37 +01:00
Renamed from src/ui/serial.c (Browse further)