Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
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

 PPRZ_MUTEX (copilot_cam_snapshot_mtx)
 
 PPRZ_MUTEX (copilot_cam_payload_mtx)
 
 PPRZ_MUTEX (copilot_status_mtx)
 
void copilot_init (void)
 Init function. More...
 
void copilot_periodic (void)
 Periodic function. More...
 
void copilot_parse_cam_snapshot_dl (uint8_t *buf)
 copy CAMERA_SNAPSHOT message and mark it to be sent More...
 
void copilot_parse_cam_payload_dl (uint8_t *buf)
 copy CAMERA_PAYLOAD message and mark it to be sent More...
 
void copilot_parse_copilot_status_dl (uint8_t *buf)
 copy COPILOT_STATUS message and mark it to be sent More...
 
void copilot_parse_payload_command_dl (uint8_t *buf)
 Pass through PAYLOAD_COMMAND message and send it as PAYLOAD msg over telemetry. More...
 

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
 

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)

◆ 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, CameraSnapshot::lens_temp, PPRZ_MUTEX_LOCK, PPRZ_MUTEX_UNLOCK, send_cam_snapshot, CameraSnapshot::snapshot_num, and CameraSnapshot::snapshot_valid.

◆ copilot_parse_copilot_status_dl()

void copilot_parse_copilot_status_dl ( uint8_t buf)

◆ 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, and extra_pprz_tp.

◆ copilot_periodic()

◆ PPRZ_MUTEX() [1/3]

PPRZ_MUTEX ( copilot_cam_payload_mtx  )

◆ PPRZ_MUTEX() [2/3]

PPRZ_MUTEX ( copilot_cam_snapshot_mtx  )

◆ PPRZ_MUTEX() [3/3]

PPRZ_MUTEX ( copilot_status_mtx  )

Variable Documentation

◆ cam_payload

struct CameraPayload cam_payload

Definition at line 49 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 49 of file copilot_common.c.

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

◆ copilot_status

struct CopilotStatus copilot_status

◆ 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