Skip to content

Commit

Permalink
small bugs fix in case of STANDALONE
Browse files Browse the repository at this point in the history
  • Loading branch information
MikyM0use authored and MikyM0use committed Nov 4, 2016
1 parent 27ea56f commit 2cc88fd
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 32 deletions.
4 changes: 3 additions & 1 deletion jafar_sketch/const.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,13 @@ This file is part of Fatshark© goggle rx module project (JAFaR).


#ifdef STANDALONE
#define LOOPTIME 200
#define LOOPTIME 100
#else
#define LOOPTIME 1000
#endif

#define JAFARE_DEBOUCE_TIME 180

#define TIMER_INIT_VALUE 5.0
#define CH1 2
#define CH2 3
Expand Down
6 changes: 4 additions & 2 deletions jafar_sketch/jafar_oled.ino
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,10 @@ uint8_t oled_submenu(uint8_t menu_pos, uint8_t band) {
u8g.drawStr( 0, 8 + i * 8, j_buf);
}
#ifndef STANDALONE
u8g.setPrintPos(110, 10);
u8g.print((int)timer);
if (timer > 0) {
u8g.setPrintPos(110, 10);
u8g.print((int)timer);
}
#endif

} while ( u8g.nextPage() );
Expand Down
41 changes: 20 additions & 21 deletions jafar_sketch/jafar_sketch.ino
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@ void setup() {
last_used_freq_id = EEPROM.read(EEPROM_ADDR_LAST_FREQ_ID);
last_used_freq = pgm_read_word_near(channelFreqTable + (8 * last_used_band) + last_used_freq_id); //freq

#ifdef USE_I2C_OLED //default - set the last freq
rx5808.setFreq(last_used_freq); //set the last freq
#endif

_init_selection = readSwitch();
}

Expand All @@ -135,12 +139,7 @@ void autoscan() {

last_post_switch = menu_pos;

#ifdef USE_OLED //debounce and peace
delay(LOOPTIME);
#endif
#ifdef USE_OSD
TV.delay(LOOPTIME);
#endif //OLED
jafar_delay(LOOPTIME);
timer -= (LOOPTIME / 1000.0);
}

Expand Down Expand Up @@ -176,15 +175,19 @@ void loop(void) {
if (last_post_switch != menu_pos) {
flag_first_pos = 0;
timer = TIMER_INIT_VALUE;
#ifdef STANDALONE //debounce
jafar_delay(JAFARE_DEBOUCE_TIME);
#endif
#ifdef USE_I2C_OLED //changing freq every pression
if (!in_mainmenu)
rx5808.setFreq(pgm_read_word_near(channelFreqTable + (8 * menu_band) + menu_pos));
#endif
}
#ifndef STANDALONE //no timer in standalone
else {
#ifdef STANDALONE
if (timer > 0)
return; //force no refresh of OSD
#else
timer -= (LOOPTIME / 1000.0);
#endif
}
#endif

last_post_switch = menu_pos;

Expand All @@ -203,15 +206,14 @@ void loop(void) {
else {
in_mainmenu = 0;
menu_band = ((menu_pos - 1 - _init_selection + 8) % 8);
#ifdef USE_I2C_OLED
set_and_wait(menu_band, menu_pos);
#else
timer = TIMER_INIT_VALUE;
#endif
}

#ifdef USE_OLED //debounce and peace
delay(200);
#endif
#ifdef USE_OSD
TV.delay(200);
#endif //OLED
jafar_delay(200);

} else { //if in submenu
//after selection of band AND freq by the user
Expand All @@ -224,21 +226,18 @@ void loop(void) {
if (in_mainmenu) { //on main menu
#ifdef USE_OLED
oled_mainmenu(menu_pos);
delay(LOOPTIME);
#endif
#ifdef USE_OSD
osd_mainmenu(menu_pos) ;
TV.delay(LOOPTIME);
#endif
} else { //on submenu
#ifdef USE_OLED
oled_submenu(menu_pos, menu_band);
delay(LOOPTIME);
#endif
#ifdef USE_OSD
osd_submenu(menu_pos, menu_band);
TV.delay(LOOPTIME);
#endif
}
jafar_delay(LOOPTIME);
}

31 changes: 23 additions & 8 deletions jafar_sketch/jafar_util.ino
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ inline uint8_t readSwitch() {
#endif
}

void jafar_delay(uint16_t _delay) {
void inline jafar_delay(const uint16_t __delay) {
#ifdef USE_OSD
TV.delay(2000);
TV.delay(__delay);
#else
delay(2000);
delay(__delay);
#endif
}
void set_and_wait(uint8_t band, uint8_t menu_pos) {
Expand All @@ -69,8 +69,6 @@ void set_and_wait(uint8_t band, uint8_t menu_pos) {
SELECT_B;
current_rx = RX_B;

//jafar_delay(3000);

#else
SELECT_A;
current_rx = RX_A;
Expand Down Expand Up @@ -101,6 +99,9 @@ void set_and_wait(uint8_t band, uint8_t menu_pos) {
EEPROM.write(EEPROM_ADDR_LAST_FREQ_ID, menu_pos); //freq id
EEPROM.write(EEPROM_ADDR_LAST_BAND_ID, band); //channel name

#ifdef USE_I2C_OLED //force screen refresh
oled_submenu(menu_pos, band);
#endif
/* //TODO: this is the entry point for the re-init of oled
U8GLIB_SSD1306_128X64 u8g2(8, A1, A4, 11 , 13); //CLK, MOSI, CS, DC, RESET
u8g2.setFont(u8g_font_8x13);
Expand All @@ -118,9 +119,13 @@ void set_and_wait(uint8_t band, uint8_t menu_pos) {
} while ( u8g2.nextPage() );
delay(4000);
*/
global_max_rssi = max(rx5808.getRssiMax(), rx5808B.getRssiMax());

//MAIN LOOP - change channel and log
while (1) {
#ifdef USE_DIVERSITY

global_max_rssi = max(rx5808.getRssiMax(), rx5808B.getRssiMax());

rssi_a = rx5808.getCurrentRSSI();
if (rssi_a > rx5808.getRssiMax()) { //update to new max if needed
rx5808.setRssiMax(rssi_a);
Expand All @@ -132,7 +137,7 @@ void set_and_wait(uint8_t band, uint8_t menu_pos) {

rssi_a_norm = constrain(rssi_a, rx5808.getRssiMin(), rx5808.getRssiMax());
rssi_a_norm = map(rssi_a_norm, rx5808.getRssiMin(), rx5808.getRssiMax(), 1, global_max_rssi);
#ifdef USE_DIVERSITY

rssi_b = rx5808B.getCurrentRSSI();

if (rssi_b > rx5808B.getRssiMax()) { //this solve a bug when the goggles are powered on with no VTX around
Expand Down Expand Up @@ -190,7 +195,6 @@ void set_and_wait(uint8_t band, uint8_t menu_pos) {
Serial.println(rssi_a_norm_filt, DEC);

//delay(100);
#endif
#endif
prev_rssi_b_norm = rssi_b_norm_filt;
prev_rssi_a_norm = rssi_a_norm_filt;
Expand Down Expand Up @@ -230,6 +234,8 @@ void set_and_wait(uint8_t band, uint8_t menu_pos) {

#endif //DEBUG

#endif //DIVERSITY

menu_pos = readSwitch();

if (last_post_switch != menu_pos) { //something changed by user
Expand Down Expand Up @@ -257,6 +263,15 @@ void set_and_wait(uint8_t band, uint8_t menu_pos) {
rx5808.setFreq(pgm_read_word_near(channelFreqTable + (8 * band) + menu_pos)); //set the selected freq

EEPROM.write(EEPROM_ADDR_LAST_FREQ_ID, menu_pos);

#ifdef USE_I2C_OLED
oled_submenu(menu_pos, band); //refresh screen
jafar_delay(JAFARE_DEBOUCE_TIME);
#endif
#ifdef STANDALONE
jafar_delay(JAFARE_DEBOUCE_TIME); //debounce
#endif

}
last_post_switch = menu_pos;

Expand Down

0 comments on commit 2cc88fd

Please sign in to comment.