2525 *
2626 * \author Gabriel Mariano Marcelino <gabriel.mm8@gmail.com>
2727 *
28- * \version 0.1.11
28+ * \version 0.2.0
2929 *
3030 * \date 08/06/2017
3131 *
@@ -120,39 +120,39 @@ void beacon_run()
120120// }
121121
122122 __enable_interrupt ();
123-
123+
124124 while (1 )
125125 {
126126 task_periodic (& beacon_check_devices_status , 1 , & beacon .last_devices_verification , time_get_seconds ());
127-
127+
128128 #if BEACON_PACKET_PROTOCOL & PACKET_NGHAM
129129 task_periodic_no_preemption (& beacon_send_ngham_pkt , beacon_get_tx_period (), & beacon .last_ngham_pkt_transmission , time_get_seconds ());
130130 #endif // PACKET_NGHAM
131-
131+
132132 #if BEACON_PACKET_PROTOCOL & PACKET_AX25
133133 task_scheduled_no_preemption (& beacon_send_ax25_pkt , beacon .last_ngham_pkt_transmission + 1 , time_get_seconds (), 0 , ((beacon .last_ngham_pkt_transmission + 1 ) == time_get_seconds ())? true : false);
134134 #endif // PACKET_AX25
135-
135+
136136 task_aperiodic (& beacon_process_obdh_pkt , obdh_available ()? true : false);
137-
137+
138138 task_aperiodic (& beacon_process_eps_pkt , eps_available ()? true : false);
139-
140- task_aperiodic (& beacon_process_radio_pkt , (radio_available ()? true : false) && (beacon .obdh .is_dead ? true : false));
141-
139+
140+ task_aperiodic (& beacon_process_radio_pkt , (( radio_available () > 0 )? true : false) && (beacon .obdh .is_dead ? true : false));
141+
142142 task_aperiodic (& radio_enable_rx , beacon .obdh .is_dead ? true : false);
143-
143+
144144 task_scheduled (& beacon_leave_hibernation , beacon .hibernation_mode_initial_time + BEACON_HIBERNATION_PERIOD_SECONDS , time_get_seconds (), 5 , beacon .hibernation ? true : false);
145-
145+
146146 task_periodic (& beacon_set_energy_level , BEACON_TX_PERIOD_SEC_L1 , & beacon .last_energy_level_set , time_get_seconds ());
147-
147+
148148 task_periodic (& radio_init , BEACON_RADIO_RESET_PERIOD_SEC , & beacon .last_radio_reset_time , time_get_seconds ());
149-
149+
150150 task_periodic (& system_reset , BEACON_SYSTEM_RESET_PERIOD_SEC , & beacon .last_system_reset_time , time_get_seconds ());
151-
151+
152152 status_led_toggle (); // Heartbeat
153-
153+
154154 system_enter_low_power_mode (); // Wait until the time timer execution (When the system leaves low-power mode)
155-
155+
156156 watchdog_reset_timer ();
157157 }
158158}
@@ -561,13 +561,13 @@ void beacon_process_radio_pkt()
561561 {
562562 uint8_t data [100 ];
563563 uint8_t data_len ;
564-
564+
565565 uint8_t ngham_state ;
566-
567- while (radio_available ())
566+
567+ while (radio_available () > 0 )
568568 {
569569 ngham_state = ngham_decode (radio_pop (), data , & data_len );
570-
570+
571571 if (ngham_state == PKT_CONDITION_OK )
572572 {
573573 break ;
@@ -581,7 +581,7 @@ void beacon_process_radio_pkt()
581581 continue ;
582582 }
583583 }
584-
584+
585585 if (ngham_state == PKT_CONDITION_OK )
586586 {
587587 if ((data [6 ] == 's' ) && (data [7 ] == 'd' ))
@@ -597,48 +597,48 @@ void beacon_process_radio_pkt()
597597
598598 uint8_t ngham_pkt_str [100 ];
599599 uint16_t ngham_pkt_str_len ;
600-
600+
601601 uint8_t pkt_payload_len = 0 ;
602602 uint8_t pkt_payload [60 ];
603-
603+
604604 uint8_t shutdown_ack_start [] = "Shutdown received from " ;
605-
605+
606606 for (i = 0 ; i < sizeof (shutdown_ack_start ); i ++ )
607607 {
608608 pkt_payload [pkt_payload_len ++ ] = shutdown_ack_start [i ];
609609 }
610-
610+
611611 for (i = 0 ; i < 6 ; i ++ )
612612 {
613613 pkt_payload [pkt_payload_len ++ ] = data [i ];
614614 }
615-
615+
616616 uint8_t shutdown_ack_end [] = ". Wake up time in 24 hours." ;
617617 for (i = 0 ; i < sizeof (shutdown_ack_end ); i ++ )
618618 {
619619 pkt_payload [pkt_payload_len ++ ] = shutdown_ack_end [i ];
620620 }
621-
621+
622622 NGHam_TX_Packet ngham_packet ;
623623 ngham_tx_pkt_gen (& ngham_packet , pkt_payload , pkt_payload_len );
624624 ngham_encode (& ngham_packet , ngham_pkt_str , & ngham_pkt_str_len );
625-
625+
626626 uint32_t timeout_radio_shutdown_ack = BEACON_TIMEOUT_RADIO_SHUTDOWN ;
627-
627+
628628 while (timeout_radio_shutdown_ack -- )
629629 {
630630 if (beacon .can_transmit )
631631 {
632632 beacon .transmitting = true;
633-
633+
634634 radio_write (ngham_pkt_str , ngham_pkt_str_len );
635-
635+
636636 beacon .transmitting = false;
637-
637+
638638 break ;
639639 }
640640 }
641-
641+
642642 beacon_enter_hibernation ();
643643 }
644644 }
0 commit comments