Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
intermcu.h File Reference

Rotorcraft Inter-MCU interface. More...

#include "std.h"
#include "subsystems/commands.h"
#include "pprzlink/pprz_transport.h"
#include <BOARD_CONFIG>
+ Include dependency graph for intermcu.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  intermcu_t
 

Macros

#define INTERMCU_AP   0
 
#define INTERMCU_FBW   1
 
#define INTERMCU_LOST_CNT   25 /* 50ms with a 512Hz timer TODO fixed value */
 
#define INTERMCU_SET_CMD_STATUS(_bit)   { intermcu.cmd_status |= (1 << _bit); }
 
#define INTERMCU_CLR_CMD_STATUS(_bit)   { intermcu.cmd_status &= ~(1 << _bit); }
 
#define INTERMCU_GET_CMD_STATUS(_bit)   (intermcu.cmd_status & (1 << _bit))
 

Enumerations

enum  intermcu_status { INTERMCU_OK, INTERMCU_LOST }
 
enum  intermcu_PX4_baud_status { PX4_BAUD, CHANGING_BAUD, PPRZ_BAUD }
 
enum  intermcu_cmd_status { INTERMCU_CMD_MOTORS_ON, INTERMCU_CMD_DISARM, INTERMCU_CMD_TIPPROPS, INTERMCU_CMD_FAILSAFE }
 

Functions

void intermcu_init (void)
 
void intermcu_periodic (void)
 

Variables

struct intermcu_t intermcu
 

Detailed Description

Rotorcraft Inter-MCU interface.

Definition in file intermcu.h.


Data Structure Documentation

◆ intermcu_t

struct intermcu_t

Definition at line 70 of file intermcu.h.

+ Collaboration diagram for intermcu_t:
Data Fields
uint8_t cmd_status Command status information that is transfered (intermcu_cmd_status)
struct link_device * device Device used for communication.
bool enabled If the InterMCU communication is enabled.
bool msg_available If we have an InterMCU message.
enum intermcu_status status Status of the INTERMCU.
uint8_t time_since_last_frame Time since last frame.
struct pprz_transport transport Transport over communication line (PPRZ)

Macro Definition Documentation

◆ INTERMCU_AP

#define INTERMCU_AP   0

Definition at line 34 of file intermcu.h.

◆ INTERMCU_CLR_CMD_STATUS

#define INTERMCU_CLR_CMD_STATUS (   _bit)    { intermcu.cmd_status &= ~(1 << _bit); }

Definition at line 66 of file intermcu.h.

◆ INTERMCU_FBW

#define INTERMCU_FBW   1

Definition at line 35 of file intermcu.h.

◆ INTERMCU_GET_CMD_STATUS

#define INTERMCU_GET_CMD_STATUS (   _bit)    (intermcu.cmd_status & (1 << _bit))

Definition at line 67 of file intermcu.h.

◆ INTERMCU_LOST_CNT

#define INTERMCU_LOST_CNT   25 /* 50ms with a 512Hz timer TODO fixed value */

Definition at line 38 of file intermcu.h.

◆ INTERMCU_SET_CMD_STATUS

#define INTERMCU_SET_CMD_STATUS (   _bit)    { intermcu.cmd_status |= (1 << _bit); }

Definition at line 65 of file intermcu.h.

Enumeration Type Documentation

◆ intermcu_cmd_status

Enumerator
INTERMCU_CMD_MOTORS_ON 

The status of autopilot_motors_on.

INTERMCU_CMD_DISARM 

Whether or not to dis-arm the FBW.

INTERMCU_CMD_TIPPROPS 

Enable tip props.

INTERMCU_CMD_FAILSAFE 

Set FBW in failsafe mode.

Definition at line 57 of file intermcu.h.

◆ intermcu_PX4_baud_status

Enumerator
PX4_BAUD 
CHANGING_BAUD 
PPRZ_BAUD 

Definition at line 50 of file intermcu.h.

◆ intermcu_status

Enumerator
INTERMCU_OK 

InterMCU communication is OK.

INTERMCU_LOST 

No interMCU communication anymore.

Definition at line 44 of file intermcu.h.

Function Documentation

◆ intermcu_init()

void intermcu_init ( void  )

Definition at line 71 of file intermcu_ap.c.

References DefaultPeriodic, gps_cb(), gps_ev, GPS_FIX_NONE, GPS_IMCU_ID, IMCU_GPS_ID, intermcu, register_periodic_telemetry(), send_status(), sys_time_register_timer(), and intermcu_t::transport.

Referenced by main_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ intermcu_periodic()

void intermcu_periodic ( void  )

Definition at line 90 of file intermcu_ap.c.

References gps_periodic_check(), intermcu, INTERMCU_LOST, INTERMCU_LOST_CNT, intermcu_t::status, and intermcu_t::time_since_last_frame.

Referenced by main_periodic().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ intermcu