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_common.c 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_common.c:

Go to the source code of this file.

Functions

void copilot_init (void)
 Init function.
 
void copilot_periodic (void)
 Periodic function.
 
void copilot_parse_cam_snapshot_dl (uint8_t *buf)
 copy CAMERA_SNAPSHOT message and mark it to be sent
 
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_payload_command_dl (uint8_t *buf)
 Pass through PAYLOAD_COMMAND message and send it as PAYLOAD msg over telemetry.
 

Variables

bool send_cam_snapshot
 
bool send_cam_payload
 
bool send_copilot_status
 
struct CameraPayload cam_payload
 
struct CameraSnapshot cam_snapshot
 
struct CopilotStatus copilot_status
 
pprz_mutex_t copilot_cam_snapshot_mtx
 
pprz_mutex_t copilot_cam_payload_mtx
 
pprz_mutex_t copilot_status_mtx
 

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_common.c.

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)

copy CAMERA_SNAPSHOT message and mark it to be sent

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_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

◆ cam_payload

struct CameraPayload cam_payload

Definition at line 51 of file copilot_common.c.

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

◆ cam_snapshot

struct CameraSnapshot cam_snapshot

Definition at line 52 of file copilot_common.c.

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

◆ copilot_cam_payload_mtx

pprz_mutex_t copilot_cam_payload_mtx

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

Definition at line 55 of file copilot_common.c.

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

◆ copilot_status

struct CopilotStatus copilot_status

◆ copilot_status_mtx

pprz_mutex_t copilot_status_mtx

◆ send_cam_payload

bool send_cam_payload

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

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