kopia lustrzana https://github.com/bristol-seds/pico-tracker
Telemetry changes to allow rtty and contestia
rodzic
d985c90dfc
commit
307f57b7c2
|
@ -28,6 +28,7 @@
|
||||||
uint16_t crc_checksum(char *string);
|
uint16_t crc_checksum(char *string);
|
||||||
|
|
||||||
#include "util/dbuffer.h"
|
#include "util/dbuffer.h"
|
||||||
|
#include "rsid.h"
|
||||||
|
|
||||||
enum telemetry_t {
|
enum telemetry_t {
|
||||||
TELEMETRY_RTTY,
|
TELEMETRY_RTTY,
|
||||||
|
@ -49,6 +50,7 @@ ARRAY_DBUFFER_T(char, TELEMETRY_STRING_MAX+TELEMETRY_LARGEST_BLOCK) telemetry_db
|
||||||
|
|
||||||
int telemetry_active(void);
|
int telemetry_active(void);
|
||||||
int telemetry_start(enum telemetry_t type);
|
int telemetry_start(enum telemetry_t type);
|
||||||
|
int telemetry_start_rsid(rsid_code_t rsid);
|
||||||
int32_t telemetry_get_index(void);
|
int32_t telemetry_get_index(void);
|
||||||
void telemetry_set_length(int32_t length);
|
void telemetry_set_length(int32_t length);
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ void powermananger_init(void)
|
||||||
* Telemetry String
|
* Telemetry String
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
*/
|
*/
|
||||||
void output_telemetry_string(void)
|
void output_telemetry_string(enum telemetry_t type)
|
||||||
{
|
{
|
||||||
double lat_fmt = 0.0;
|
double lat_fmt = 0.0;
|
||||||
double lon_fmt = 0.0;
|
double lon_fmt = 0.0;
|
||||||
|
@ -190,22 +190,25 @@ void output_telemetry_string(void)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starting up the radio blocks on high-prio interrupt for ~100ms: todo fixme
|
||||||
|
*
|
||||||
|
* Therefore don't touch gps until it's done
|
||||||
|
*/
|
||||||
|
|
||||||
/* RSID */
|
/* RSID */
|
||||||
/* start - SI NOW BELONGS TO TELEMETRY, WE CANNOT ACCESS */
|
/* start - SI NOW BELONGS TO TELEMETRY, WE CANNOT ACCESS */
|
||||||
#ifdef CONTESTIA
|
if (type == TELEMETRY_CONTESTIA) {
|
||||||
telemetry_start_rsid(RSID_CONTESTIA_32_1000);
|
telemetry_start_rsid(RSID_CONTESTIA_32_1000);
|
||||||
#endif
|
}
|
||||||
|
|
||||||
/* Sleep Wait for RSID to be done */
|
/* Sleep Wait for RSID to be done */
|
||||||
while (telemetry_active()) {
|
while (telemetry_active()) {
|
||||||
system_sleep();
|
system_sleep();
|
||||||
}
|
}
|
||||||
#ifdef RTTY
|
|
||||||
telemetry_start(TELEMETRY_RTTY);
|
/* Main telemetry */
|
||||||
#endif
|
telemetry_start(type);
|
||||||
#ifdef CONTESTIA
|
|
||||||
telemetry_start(TELEMETRY_CONTESTIA);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Position, Status, Checksum
|
* Position, Status, Checksum
|
||||||
|
@ -334,7 +337,7 @@ int main(void)
|
||||||
//wdt_reset_count();
|
//wdt_reset_count();
|
||||||
|
|
||||||
/* Send the next packet */
|
/* Send the next packet */
|
||||||
output_telemetry_string();
|
output_telemetry_string(TELEMETRY_RTTY);
|
||||||
|
|
||||||
telemetry_start(TELEMETRY_PIPS);
|
telemetry_start(TELEMETRY_PIPS);
|
||||||
telemetry_set_length(5);
|
telemetry_set_length(5);
|
||||||
|
|
|
@ -34,12 +34,9 @@
|
||||||
* Interface to the physical world.
|
* Interface to the physical world.
|
||||||
*/
|
*/
|
||||||
#define RTTY_CHANNEL_DEVIATION (RTTY_CHANNEL_SPACING / 2)
|
#define RTTY_CHANNEL_DEVIATION (RTTY_CHANNEL_SPACING / 2)
|
||||||
#define RTTY_CHANNEL(b) (b ? RTTY_CHANNEL_DEVIATION : -RTTY_CHANNEL_DEVIATION)
|
#define RTTY_CHANNEL(b) (b ? -RTTY_CHANNEL_DEVIATION : RTTY_CHANNEL_DEVIATION)
|
||||||
#define RTTY_SET(b) si_trx_switch_channel(RTTY_CHANNEL(b))
|
#define RTTY_SET(b) si_trx_switch_channel(RTTY_CHANNEL(b))
|
||||||
|
|
||||||
//port_pin_set_output_level(SI406X_GPIO1_PIN, !b);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formatting 8N2
|
* Formatting 8N2
|
||||||
|
@ -95,13 +92,5 @@ uint8_t rtty_tick(void) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if (rtty_phase >= BITS_PER_CHAR) { // Next character */
|
|
||||||
/* rtty_phase = 0; rtty_index++; RTTY_NEXT(); */
|
|
||||||
|
|
||||||
/* if (rtty_index >= rtty_string_length) { // All done, deactivate */
|
|
||||||
/* rtty_string_length = 0; // Deactivate */
|
|
||||||
/* } */
|
|
||||||
/* } */
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -364,9 +364,9 @@ void si_trx_reset(uint8_t modulation_type)
|
||||||
{
|
{
|
||||||
_si_trx_sdn_enable(); /* active high shutdown = reset */
|
_si_trx_sdn_enable(); /* active high shutdown = reset */
|
||||||
|
|
||||||
for (int i = 0; i < 15*10000; i++); /* Approx. 15ms */
|
for (int i = 0; i < 15*1000; i++); /* Approx. 15ms */
|
||||||
_si_trx_sdn_disable(); /* booting */
|
_si_trx_sdn_disable(); /* booting */
|
||||||
for (int i = 0; i < 15*10000; i++); /* Approx. 15ms */
|
for (int i = 0; i < 15*1000; i++); /* Approx. 15ms */
|
||||||
|
|
||||||
|
|
||||||
uint16_t part_number = si_trx_get_part_info();
|
uint16_t part_number = si_trx_get_part_info();
|
||||||
|
|
Ładowanie…
Reference in New Issue