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
copilot.h File Reference

Mission Computer module, interfacing the mission computer (also known as Copilot), based losely on ISaAC: The Intelligent Safety and Airworthiness Co-Pilot module Based on paper "A Payload Verification and Management Framework for Small UAV-based Personal Remote Sensing Systems" by Cal Coopmans and Chris Coffin. More...

+ Include dependency graph for copilot.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  CameraPayload
 
struct  CameraSnapshot
 
struct  CopilotStatus
 

Functions

void copilot_init (void)
 Init function.
 
void copilot_periodic (void)
 Periodic function.
 
void copilot_parse_cam_snapshot_dl (uint8_t *buf)
 Message processing functions.
 
void copilot_parse_cam_payload_dl (uint8_t *buf)
 copy CAMERA_PAYLOAD message and mark it to be sent
 
void copilot_parse_copilot_status_dl (uint8_t *buf)
 copy COPILOT_STATUS message and mark it to be sent
 
void copilot_parse_move_wp_dl (uint8_t *buf)
 If MOVE_WP from GCS.
 
void copilot_parse_payload_command_dl (uint8_t *buf)
 Pass through PAYLOAD_COMMAND message and send it as PAYLOAD msg over telemetry.
 

Variables

pprz_mutex_t copilot_cam_snapshot_mtx
 
pprz_mutex_t copilot_cam_payload_mtx
 
pprz_mutex_t copilot_status_mtx
 
bool send_cam_snapshot
 
bool send_cam_payload
 
bool send_copilot_status
 

Detailed Description

Mission Computer module, interfacing the mission computer (also known as Copilot), based losely on ISaAC: The Intelligent Safety and Airworthiness Co-Pilot module Based on paper "A Payload Verification and Management Framework for Small UAV-based Personal Remote Sensing Systems" by Cal Coopmans and Chris Coffin.

Link: http://ieeexplore.ieee.org/abstract/document/6309316/

More info can be found on http://wiki.paparazziuav.org/wiki/Mission_computer

Copilot is intended mainly for mapping applications.

This module processes messages from Copilot, and either forwards them to the GCS (such as CAMERA_SNAPSHOT or CAMERA_PAYLOAD messages), or responds to them as necessary (such as MOVE_WP).

The module assumes the source of the messages is trusted (i.e. not authentication besides AC_ID check is performed).

Definition in file copilot.h.


Data Structure Documentation

◆ CameraPayload

struct CameraPayload

Definition at line 56 of file copilot.h.

Data Fields
uint8_t door_status
uint8_t error_code
float timestamp
uint8_t used_disk
uint8_t used_mem

◆ CameraSnapshot

struct CameraSnapshot

Definition at line 64 of file copilot.h.

Data Fields
float array_temp
uint16_t cam_id
uint8_t cam_state
float lens_temp
uint16_t snapshot_num
uint8_t snapshot_valid

◆ CopilotStatus

struct CopilotStatus

Definition at line 73 of file copilot.h.

Data Fields
uint8_t error_code
uint8_t status
float timestamp
uint8_t used_disk
uint8_t used_mem

Function Documentation

◆ copilot_init()

void copilot_init ( void  )

◆ copilot_parse_cam_payload_dl()

void copilot_parse_cam_payload_dl ( uint8_t buf)

copy CAMERA_PAYLOAD message and mark it to be sent

Definition at line 147 of file copilot_common.c.

References cam_payload, copilot_cam_payload_mtx, CameraPayload::door_status, CameraPayload::error_code, foo, pprz_mtx_lock(), pprz_mtx_unlock(), send_cam_payload, CameraPayload::timestamp, CameraPayload::used_disk, and CameraPayload::used_mem.

+ Here is the call graph for this function:

◆ copilot_parse_cam_snapshot_dl()

void copilot_parse_cam_snapshot_dl ( uint8_t buf)

Message processing functions.

Message processing functions.

In case of multiple cameras, it is up to the payload computer to send CAMERA_SNAPSHOT messages for each camera at proper interval, so the values don't get overwritten.

Definition at line 127 of file copilot_common.c.

References CameraSnapshot::array_temp, CameraSnapshot::cam_id, cam_snapshot, CameraSnapshot::cam_state, copilot_cam_snapshot_mtx, foo, CameraSnapshot::lens_temp, pprz_mtx_lock(), pprz_mtx_unlock(), send_cam_snapshot, CameraSnapshot::snapshot_num, and CameraSnapshot::snapshot_valid.

+ Here is the call graph for this function:

◆ copilot_parse_copilot_status_dl()

void copilot_parse_copilot_status_dl ( uint8_t buf)

copy COPILOT_STATUS message and mark it to be sent

Definition at line 165 of file copilot_common.c.

References copilot_status, copilot_status_mtx, CopilotStatus::error_code, foo, pprz_mtx_lock(), pprz_mtx_unlock(), send_copilot_status, CopilotStatus::status, CopilotStatus::timestamp, CopilotStatus::used_disk, and CopilotStatus::used_mem.

+ Here is the call graph for this function:

◆ copilot_parse_move_wp_dl()

void copilot_parse_move_wp_dl ( uint8_t buf)

If MOVE_WP from GCS.

If MOVE_WP from extra_dl

In both cases, the MOVE_WP message was already processed in firmware_parse here we are taking care only about propagating the change

Definition at line 67 of file copilot_fixedwing.c.

References LlaCoor_f::alt, LlaCoor_i::alt, DefaultChannel, DefaultDevice, dl_buffer, extra_dl_buffer, extra_pprz_tp, foo, LlaCoor_f::lat, LlaCoor_i::lat, LlaCoor_f::lon, LlaCoor_i::lon, nav_utm_east0, nav_utm_north0, nav_utm_zone0, nb_waypoint, stateGetHmslOrigin_i(), stateGetLlaOrigin_i(), stateIsLocalCoordinateValid(), utm_of_lla_f(), waypoint_is_global(), waypoints, point::x, point::y, and UtmCoor_f::zone.

+ Here is the call graph for this function:

◆ copilot_parse_payload_command_dl()

void copilot_parse_payload_command_dl ( uint8_t buf)

Pass through PAYLOAD_COMMAND message and send it as PAYLOAD msg over telemetry.

Definition at line 184 of file copilot_common.c.

References DefaultChannel, DefaultDevice, dl_buffer, extra_dl_buffer, extra_pprz_tp, and foo.

◆ copilot_periodic()

Variable Documentation

◆ copilot_cam_payload_mtx

pprz_mutex_t copilot_cam_payload_mtx
extern

Definition at line 56 of file copilot_common.c.

Referenced by copilot_init(), copilot_parse_cam_payload_dl(), and copilot_periodic().

◆ copilot_cam_snapshot_mtx

pprz_mutex_t copilot_cam_snapshot_mtx
extern

Definition at line 55 of file copilot_common.c.

Referenced by copilot_init(), copilot_parse_cam_snapshot_dl(), and copilot_periodic().

◆ copilot_status_mtx

pprz_mutex_t copilot_status_mtx
extern

◆ send_cam_payload

bool send_cam_payload
extern

Definition at line 48 of file copilot_common.c.

Referenced by copilot_init(), copilot_parse_cam_payload_dl(), and copilot_periodic().

◆ send_cam_snapshot

bool send_cam_snapshot
extern

Definition at line 47 of file copilot_common.c.

Referenced by copilot_init(), copilot_parse_cam_snapshot_dl(), and copilot_periodic().

◆ send_copilot_status

bool send_copilot_status
extern