Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
power_uavcan.c File Reference

Power sensors on the uavcan bus. More...

#include "power_uavcan.h"
#include "uavcan/uavcan.h"
#include "modules/energy/electrical.h"
#include "math/pprz_random.h"
#include "uavcan.equipment.power.BatteryInfo.h"
#include "uavcan.equipment.power.CircuitStatus.h"
#include "modules/datalink/telemetry.h"
+ Include dependency graph for power_uavcan.c:

Go to the source code of this file.

Data Structures

struct  battery_info
 
struct  circuit_status
 
struct  uavcan_circuit_battery_t
 

Macros

#define POWER_UAVCAN_BATTERIES_MAX   3
 
#define POWER_UAVCAN_CIRCUITS_MAX   15
 
#define POWER_UAVCAN_BATTERY_CIRCUITS   {}
 

Functions

static void power_uavcan_send_power_device (struct transport_tx *trans, struct link_device *dev)
 
static void power_uavcan_battery_cb (struct uavcan_iface_t *iface, CanardRxTransfer *transfer)
 
static void power_uavcan_circuit_cb (struct uavcan_iface_t *iface, CanardRxTransfer *transfer)
 
void power_uavcan_init (void)
 

Variables

static uavcan_event power_uavcan_ev
 
static uavcan_event circuit_uavcan_ev
 
static struct battery_info batteries [POWER_UAVCAN_BATTERIES_MAX] = {0}
 
static struct circuit_status circuits [POWER_UAVCAN_CIRCUITS_MAX] = {0}
 
static struct uavcan_circuit_battery_t battery_circuits [] = POWER_UAVCAN_BATTERY_CIRCUITS
 

Detailed Description

Power sensors on the uavcan bus.

Definition in file power_uavcan.c.


Data Structure Documentation

◆ battery_info

struct battery_info

Definition at line 53 of file power_uavcan.c.

+ Collaboration diagram for battery_info:
Data Fields
struct uavcan_equipment_power_BatteryInfo info
uint8_t node_id
bool set

◆ circuit_status

struct circuit_status

Definition at line 61 of file power_uavcan.c.

+ Collaboration diagram for circuit_status:
Data Fields
bool is_battery
uint8_t node_id
bool set
struct uavcan_equipment_power_CircuitStatus status

◆ uavcan_circuit_battery_t

struct uavcan_circuit_battery_t

Definition at line 73 of file power_uavcan.c.

Data Fields
uint16_t circuit_id
uint8_t node_id

Macro Definition Documentation

◆ POWER_UAVCAN_BATTERIES_MAX

#define POWER_UAVCAN_BATTERIES_MAX   3

Definition at line 36 of file power_uavcan.c.

◆ POWER_UAVCAN_BATTERY_CIRCUITS

#define POWER_UAVCAN_BATTERY_CIRCUITS   {}

Definition at line 46 of file power_uavcan.c.

◆ POWER_UAVCAN_CIRCUITS_MAX

#define POWER_UAVCAN_CIRCUITS_MAX   15

Definition at line 41 of file power_uavcan.c.

Function Documentation

◆ power_uavcan_battery_cb()

static void power_uavcan_battery_cb ( struct uavcan_iface_t iface,
CanardRxTransfer transfer 
)
static

Definition at line 102 of file power_uavcan.c.

References batteries, Electrical::current, electrical, foo, battery_info::info, msg, battery_info::node_id, POWER_UAVCAN_BATTERIES_MAX, battery_info::set, transfer(), and Electrical::vsupply.

Referenced by power_uavcan_init().

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

◆ power_uavcan_circuit_cb()

static void power_uavcan_circuit_cb ( struct uavcan_iface_t iface,
CanardRxTransfer transfer 
)
static

Definition at line 146 of file power_uavcan.c.

References circuits, Electrical::current, electrical, foo, circuit_status::is_battery, msg, circuit_status::node_id, POWER_UAVCAN_CIRCUITS_MAX, circuit_status::set, circuit_status::status, transfer(), and Electrical::vsupply.

Referenced by power_uavcan_init().

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

◆ power_uavcan_init()

◆ power_uavcan_send_power_device()

static void power_uavcan_send_power_device ( struct transport_tx trans,
struct link_device dev 
)
static

Definition at line 82 of file power_uavcan.c.

References circuits, dev, foo, idx, uavcan_circuit_battery_t::node_id, POWER_UAVCAN_CIRCUITS_MAX, rand_uniform(), status, and circuit_status::status.

Referenced by power_uavcan_init().

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

Variable Documentation

◆ batteries

struct battery_info batteries[POWER_UAVCAN_BATTERIES_MAX] = {0}
static

Definition at line 69 of file power_uavcan.c.

Referenced by power_uavcan_battery_cb().

◆ battery_circuits

struct uavcan_circuit_battery_t battery_circuits[] = POWER_UAVCAN_BATTERY_CIRCUITS
static

Definition at line 77 of file power_uavcan.c.

Referenced by power_uavcan_init().

◆ circuit_uavcan_ev

uavcan_event circuit_uavcan_ev
static

Definition at line 51 of file power_uavcan.c.

Referenced by power_uavcan_init().

◆ circuits

◆ power_uavcan_ev

uavcan_event power_uavcan_ev
static

Definition at line 50 of file power_uavcan.c.

Referenced by power_uavcan_init().