You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
925 B
50 lines
925 B
#ifndef Waypoints_h |
|
#define Waypoints_h |
|
|
|
#include <inttypes.h> |
|
#include <avr/eeprom.h> |
|
#if defined(ARDUINO) && ARDUINO >= 100 |
|
#include "Arduino.h" |
|
#else |
|
#include "WProgram.h" |
|
#endif |
|
|
|
class Waypoints |
|
{ |
|
public: |
|
Waypoints(); |
|
|
|
struct WP { |
|
uint8_t id; // for commands |
|
int8_t p1; // for commands |
|
int32_t alt; // Altitude in centimeters (meters * 100) |
|
int32_t lat; // Lattitude * 10**7 |
|
int32_t lng; // Longitude * 10**7 |
|
}; |
|
|
|
WP get_waypoint_with_index(uint8_t i); |
|
WP get_current_waypoint(void); |
|
|
|
void set_waypoint_with_index(Waypoints::WP wp, uint8_t i); |
|
|
|
void set_start_byte(uint16_t start_byte); |
|
void set_wp_size(uint8_t wp_size); |
|
|
|
void next_index(void); |
|
uint8_t get_index(void); |
|
void set_index(uint8_t i); |
|
|
|
uint8_t get_total(void); |
|
void set_total(uint8_t total); |
|
|
|
|
|
|
|
private: |
|
uint16_t _start_byte; |
|
uint8_t _wp_size; |
|
uint8_t _index; |
|
uint8_t _total; |
|
}; |
|
|
|
#endif |
|
|
|
|