aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/heptagon_radio_transmitter/radiotrans.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/monniaux/heptagon_radio_transmitter/radiotrans.c')
-rw-r--r--test/monniaux/heptagon_radio_transmitter/radiotrans.c571
1 files changed, 571 insertions, 0 deletions
diff --git a/test/monniaux/heptagon_radio_transmitter/radiotrans.c b/test/monniaux/heptagon_radio_transmitter/radiotrans.c
new file mode 100644
index 00000000..30d4f62d
--- /dev/null
+++ b/test/monniaux/heptagon_radio_transmitter/radiotrans.c
@@ -0,0 +1,571 @@
+/* --- Generated the 13/5/2019 at 10:21 --- */
+/* --- heptagon compiler, version 1.05.00 (compiled mon. may. 13 10:18:8 CET 2019) --- */
+/* --- Command line: /local/STATOR/packages/opam-root/4.07.1/bin/heptc -target c -hepts -s main -target ctrln radiotrans.ept --- */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include "radiotrans.h"
+
+void Radiotrans__transceiver_reset(Radiotrans__transceiver_mem* self) {
+ self->ck = Radiotrans__St_Idle;
+ self->pnr = false;
+}
+
+void Radiotrans__transceiver_step(int enter_tx, int enter_rx, int exit_rx,
+ int calibrate, int sleep, int wake_up,
+ int irq_tx_done, int irq_on_packet,
+ int irq_end_of_packet,
+ int irq_end_of_calibration,
+ int irq_fifo_threshold, int ok,
+ Radiotrans__transceiver_out* _out,
+ Radiotrans__transceiver_mem* self) {
+
+ int v_2;
+ Radiotrans__st v_1;
+ int v;
+ int v_3;
+ int v_13;
+ Radiotrans__st v_12;
+ int v_11;
+ Radiotrans__st v_10;
+ int v_9;
+ Radiotrans__st v_8;
+ int v_7;
+ int v_6;
+ int v_5;
+ int v_4;
+ int nr_St_Rx_Packet;
+ Radiotrans__st ns_St_Rx_Packet;
+ int red_St_Rx_Packet;
+ int nr_St_Rx;
+ Radiotrans__st ns_St_Rx;
+ int red_St_Rx;
+ int nr_St_Sleep;
+ Radiotrans__st ns_St_Sleep;
+ int red_St_Sleep;
+ int nr_St_Calibrate;
+ Radiotrans__st ns_St_Calibrate;
+ int red_St_Calibrate;
+ int nr_St_Tx;
+ Radiotrans__st ns_St_Tx;
+ int red_St_Tx;
+ int nr_St_Idle;
+ Radiotrans__st ns_St_Idle;
+ int red_St_Idle;
+ Radiotrans__st ns;
+ int r;
+ int nr;
+ r = self->pnr;
+ switch (self->ck) {
+ case Radiotrans__St_Rx_Packet:
+ if (irq_end_of_packet) {
+ ns_St_Rx_Packet = Radiotrans__St_Idle;
+ nr_St_Rx_Packet = true;
+ } else {
+ ns_St_Rx_Packet = Radiotrans__St_Rx_Packet;
+ nr_St_Rx_Packet = false;
+ };
+ red_St_Rx_Packet = true;
+ ns = ns_St_Rx_Packet;
+ nr = nr_St_Rx_Packet;
+ _out->red = red_St_Rx_Packet;
+ break;
+ case Radiotrans__St_Rx:
+ v = (exit_rx&&ok);
+ if (v) {
+ v_1 = Radiotrans__St_Idle;
+ } else {
+ v_1 = Radiotrans__St_Rx;
+ };
+ if (irq_on_packet) {
+ ns_St_Rx = Radiotrans__St_Rx_Packet;
+ } else {
+ ns_St_Rx = v_1;
+ };
+ if (v) {
+ v_2 = true;
+ } else {
+ v_2 = false;
+ };
+ if (irq_on_packet) {
+ nr_St_Rx = true;
+ } else {
+ nr_St_Rx = v_2;
+ };
+ red_St_Rx = true;
+ ns = ns_St_Rx;
+ nr = nr_St_Rx;
+ _out->red = red_St_Rx;
+ break;
+ case Radiotrans__St_Sleep:
+ v_3 = (wake_up&&ok);
+ if (v_3) {
+ ns_St_Sleep = Radiotrans__St_Idle;
+ nr_St_Sleep = true;
+ } else {
+ ns_St_Sleep = Radiotrans__St_Sleep;
+ nr_St_Sleep = false;
+ };
+ red_St_Sleep = false;
+ ns = ns_St_Sleep;
+ nr = nr_St_Sleep;
+ _out->red = red_St_Sleep;
+ break;
+ case Radiotrans__St_Calibrate:
+ if (irq_end_of_calibration) {
+ ns_St_Calibrate = Radiotrans__St_Idle;
+ nr_St_Calibrate = true;
+ } else {
+ ns_St_Calibrate = Radiotrans__St_Calibrate;
+ nr_St_Calibrate = false;
+ };
+ red_St_Calibrate = false;
+ ns = ns_St_Calibrate;
+ nr = nr_St_Calibrate;
+ _out->red = red_St_Calibrate;
+ break;
+ case Radiotrans__St_Tx:
+ if (irq_tx_done) {
+ ns_St_Tx = Radiotrans__St_Idle;
+ nr_St_Tx = true;
+ } else {
+ ns_St_Tx = Radiotrans__St_Tx;
+ nr_St_Tx = false;
+ };
+ red_St_Tx = true;
+ ns = ns_St_Tx;
+ nr = nr_St_Tx;
+ _out->red = red_St_Tx;
+ break;
+ case Radiotrans__St_Idle:
+ v_4 = (enter_tx&&ok);
+ v_5 = (calibrate&&ok);
+ v_6 = (sleep&&ok);
+ v_7 = (enter_rx&&ok);
+ if (v_7) {
+ v_8 = Radiotrans__St_Rx;
+ } else {
+ v_8 = Radiotrans__St_Idle;
+ };
+ if (v_6) {
+ v_10 = Radiotrans__St_Sleep;
+ } else {
+ v_10 = v_8;
+ };
+ if (v_5) {
+ v_12 = Radiotrans__St_Calibrate;
+ } else {
+ v_12 = v_10;
+ };
+ if (v_4) {
+ ns_St_Idle = Radiotrans__St_Tx;
+ } else {
+ ns_St_Idle = v_12;
+ };
+ ns = ns_St_Idle;
+ if (v_7) {
+ v_9 = true;
+ } else {
+ v_9 = false;
+ };
+ if (v_6) {
+ v_11 = true;
+ } else {
+ v_11 = v_9;
+ };
+ if (v_5) {
+ v_13 = true;
+ } else {
+ v_13 = v_11;
+ };
+ if (v_4) {
+ nr_St_Idle = true;
+ } else {
+ nr_St_Idle = v_13;
+ };
+ nr = nr_St_Idle;
+ red_St_Idle = false;
+ _out->red = red_St_Idle;
+ break;
+ default:
+ break;
+ };
+ self->ck = ns;
+ self->pnr = nr;;
+}
+
+void Radiotrans__adc_reset(Radiotrans__adc_mem* self) {
+ self->ck = Radiotrans__St_1_Off;
+ self->pnr = false;
+}
+
+void Radiotrans__adc_step(int adc_on, int adc_off, int ok,
+ Radiotrans__adc_out* _out,
+ Radiotrans__adc_mem* self) {
+
+ int v;
+ int v_14;
+ int nr_St_1_On;
+ Radiotrans__st_1 ns_St_1_On;
+ int o_St_1_On;
+ int nr_St_1_Off;
+ Radiotrans__st_1 ns_St_1_Off;
+ int o_St_1_Off;
+ Radiotrans__st_1 ns;
+ int r;
+ int nr;
+ r = self->pnr;
+ switch (self->ck) {
+ case Radiotrans__St_1_On:
+ v = (adc_off&&ok);
+ if (v) {
+ ns_St_1_On = Radiotrans__St_1_Off;
+ nr_St_1_On = true;
+ } else {
+ ns_St_1_On = Radiotrans__St_1_On;
+ nr_St_1_On = false;
+ };
+ o_St_1_On = true;
+ ns = ns_St_1_On;
+ nr = nr_St_1_On;
+ _out->o = o_St_1_On;
+ break;
+ case Radiotrans__St_1_Off:
+ v_14 = (adc_on&&ok);
+ if (v_14) {
+ ns_St_1_Off = Radiotrans__St_1_On;
+ } else {
+ ns_St_1_Off = Radiotrans__St_1_Off;
+ };
+ ns = ns_St_1_Off;
+ if (v_14) {
+ nr_St_1_Off = true;
+ } else {
+ nr_St_1_Off = false;
+ };
+ nr = nr_St_1_Off;
+ o_St_1_Off = false;
+ _out->o = o_St_1_Off;
+ break;
+ default:
+ break;
+ };
+ self->ck = ns;
+ self->pnr = nr;;
+}
+
+void Radiotrans__main_reset(Radiotrans__main_mem* self) {
+ self->ck = Radiotrans__St_3_Idle;
+ self->pnr_1 = false;
+ self->ck_1 = Radiotrans__St_2_Off;
+ self->pnr = false;
+}
+
+void Radiotrans__main_step(int enter_tx, int enter_rx, int exit_rx,
+ int calibrate, int sleep, int wake_up,
+ int irq_tx_done, int irq_on_packet,
+ int irq_end_of_packet, int irq_end_of_calibration,
+ int irq_fifo_threshold, int adc_on, int adc_off,
+ Radiotrans__main_out* _out,
+ Radiotrans__main_mem* self) {
+ Radiotrans_controller__main_ctrlr0_out Radiotrans_controller__main_ctrlr0_out_st;
+
+ int v_15;
+ int v;
+ int ok_r;
+ int ok_a;
+ int v_18;
+ Radiotrans__st_3 v_17;
+ int v_16;
+ int v_19;
+ int v_29;
+ Radiotrans__st_3 v_28;
+ int v_27;
+ Radiotrans__st_3 v_26;
+ int v_25;
+ Radiotrans__st_3 v_24;
+ int v_23;
+ int v_22;
+ int v_21;
+ int v_20;
+ int nr_1_St_3_Rx_Packet;
+ Radiotrans__st_3 ns_1_St_3_Rx_Packet;
+ int red_1_St_3_Rx_Packet;
+ int nr_1_St_3_Rx;
+ Radiotrans__st_3 ns_1_St_3_Rx;
+ int red_1_St_3_Rx;
+ int nr_1_St_3_Sleep;
+ Radiotrans__st_3 ns_1_St_3_Sleep;
+ int red_1_St_3_Sleep;
+ int nr_1_St_3_Calibrate;
+ Radiotrans__st_3 ns_1_St_3_Calibrate;
+ int red_1_St_3_Calibrate;
+ int nr_1_St_3_Tx;
+ Radiotrans__st_3 ns_1_St_3_Tx;
+ int red_1_St_3_Tx;
+ int nr_1_St_3_Idle;
+ Radiotrans__st_3 ns_1_St_3_Idle;
+ int red_1_St_3_Idle;
+ int v_30;
+ int v_31;
+ int nr_St_2_On;
+ Radiotrans__st_2 ns_St_2_On;
+ int o_St_2_On;
+ int nr_St_2_Off;
+ Radiotrans__st_2 ns_St_2_Off;
+ int o_St_2_Off;
+ Radiotrans__st_3 ns_1;
+ int r_1;
+ int nr_1;
+ Radiotrans__st_2 ns;
+ int r;
+ int nr;
+ int adc_on_1;
+ int adc_off_1;
+ int ok_1;
+ int o;
+ int enter_tx_1;
+ int enter_rx_1;
+ int exit_rx_1;
+ int calibrate_1;
+ int sleep_1;
+ int wake_up_1;
+ int irq_tx_done_1;
+ int irq_on_packet_1;
+ int irq_end_of_packet_1;
+ int irq_end_of_calibration_1;
+ int irq_fifo_threshold_1;
+ int ok;
+ int red_1;
+ r_1 = self->pnr_1;
+ irq_fifo_threshold_1 = irq_fifo_threshold;
+ irq_end_of_calibration_1 = irq_end_of_calibration;
+ irq_end_of_packet_1 = irq_end_of_packet;
+ irq_on_packet_1 = irq_on_packet;
+ irq_tx_done_1 = irq_tx_done;
+ wake_up_1 = wake_up;
+ sleep_1 = sleep;
+ calibrate_1 = calibrate;
+ exit_rx_1 = exit_rx;
+ enter_rx_1 = enter_rx;
+ enter_tx_1 = enter_tx;
+ r = self->pnr;
+ adc_off_1 = adc_off;
+ adc_on_1 = adc_on;
+ switch (self->ck) {
+ case Radiotrans__St_3_Rx_Packet:
+ if (irq_end_of_packet_1) {
+ ns_1_St_3_Rx_Packet = Radiotrans__St_3_Idle;
+ nr_1_St_3_Rx_Packet = true;
+ } else {
+ ns_1_St_3_Rx_Packet = Radiotrans__St_3_Rx_Packet;
+ nr_1_St_3_Rx_Packet = false;
+ };
+ red_1_St_3_Rx_Packet = true;
+ red_1 = red_1_St_3_Rx_Packet;
+ break;
+ case Radiotrans__St_3_Rx:
+ red_1_St_3_Rx = true;
+ red_1 = red_1_St_3_Rx;
+ break;
+ case Radiotrans__St_3_Sleep:
+ red_1_St_3_Sleep = false;
+ red_1 = red_1_St_3_Sleep;
+ break;
+ case Radiotrans__St_3_Calibrate:
+ if (irq_end_of_calibration_1) {
+ ns_1_St_3_Calibrate = Radiotrans__St_3_Idle;
+ nr_1_St_3_Calibrate = true;
+ } else {
+ ns_1_St_3_Calibrate = Radiotrans__St_3_Calibrate;
+ nr_1_St_3_Calibrate = false;
+ };
+ red_1_St_3_Calibrate = false;
+ red_1 = red_1_St_3_Calibrate;
+ break;
+ case Radiotrans__St_3_Tx:
+ if (irq_tx_done_1) {
+ ns_1_St_3_Tx = Radiotrans__St_3_Idle;
+ nr_1_St_3_Tx = true;
+ } else {
+ ns_1_St_3_Tx = Radiotrans__St_3_Tx;
+ nr_1_St_3_Tx = false;
+ };
+ red_1_St_3_Tx = true;
+ red_1 = red_1_St_3_Tx;
+ break;
+ case Radiotrans__St_3_Idle:
+ red_1_St_3_Idle = false;
+ red_1 = red_1_St_3_Idle;
+ break;
+ default:
+ break;
+ };
+ _out->red = red_1;
+ switch (self->ck_1) {
+ case Radiotrans__St_2_On:
+ o_St_2_On = true;
+ o = o_St_2_On;
+ break;
+ case Radiotrans__St_2_Off:
+ o_St_2_Off = false;
+ o = o_St_2_Off;
+ break;
+ default:
+ break;
+ };
+ _out->a_on = o;
+ Radiotrans_controller__main_ctrlr0_step(adc_off, adc_on, calibrate,
+ self->ck, self->ck_1, enter_rx,
+ enter_tx, exit_rx,
+ irq_end_of_calibration,
+ irq_end_of_packet,
+ irq_fifo_threshold, irq_on_packet,
+ irq_tx_done, self->pnr,
+ self->pnr_1, sleep, wake_up,
+ &Radiotrans_controller__main_ctrlr0_out_st);
+ ok_a = Radiotrans_controller__main_ctrlr0_out_st.ok_a;
+ ok_r = Radiotrans_controller__main_ctrlr0_out_st.ok_r;
+ ok = ok_r;
+ ok_1 = ok_a;
+ switch (self->ck) {
+ case Radiotrans__St_3_Rx:
+ v_16 = (exit_rx_1&&ok);
+ if (v_16) {
+ v_17 = Radiotrans__St_3_Idle;
+ } else {
+ v_17 = Radiotrans__St_3_Rx;
+ };
+ if (irq_on_packet_1) {
+ ns_1_St_3_Rx = Radiotrans__St_3_Rx_Packet;
+ } else {
+ ns_1_St_3_Rx = v_17;
+ };
+ if (v_16) {
+ v_18 = true;
+ } else {
+ v_18 = false;
+ };
+ if (irq_on_packet_1) {
+ nr_1_St_3_Rx = true;
+ } else {
+ nr_1_St_3_Rx = v_18;
+ };
+ ns_1 = ns_1_St_3_Rx;
+ nr_1 = nr_1_St_3_Rx;
+ break;
+ case Radiotrans__St_3_Sleep:
+ v_19 = (wake_up_1&&ok);
+ if (v_19) {
+ ns_1_St_3_Sleep = Radiotrans__St_3_Idle;
+ nr_1_St_3_Sleep = true;
+ } else {
+ ns_1_St_3_Sleep = Radiotrans__St_3_Sleep;
+ nr_1_St_3_Sleep = false;
+ };
+ ns_1 = ns_1_St_3_Sleep;
+ nr_1 = nr_1_St_3_Sleep;
+ break;
+ case Radiotrans__St_3_Idle:
+ v_20 = (enter_tx_1&&ok);
+ v_21 = (calibrate_1&&ok);
+ v_22 = (sleep_1&&ok);
+ v_23 = (enter_rx_1&&ok);
+ if (v_23) {
+ v_24 = Radiotrans__St_3_Rx;
+ } else {
+ v_24 = Radiotrans__St_3_Idle;
+ };
+ if (v_22) {
+ v_26 = Radiotrans__St_3_Sleep;
+ } else {
+ v_26 = v_24;
+ };
+ if (v_21) {
+ v_28 = Radiotrans__St_3_Calibrate;
+ } else {
+ v_28 = v_26;
+ };
+ if (v_20) {
+ ns_1_St_3_Idle = Radiotrans__St_3_Tx;
+ } else {
+ ns_1_St_3_Idle = v_28;
+ };
+ ns_1 = ns_1_St_3_Idle;
+ if (v_23) {
+ v_25 = true;
+ } else {
+ v_25 = false;
+ };
+ if (v_22) {
+ v_27 = true;
+ } else {
+ v_27 = v_25;
+ };
+ if (v_21) {
+ v_29 = true;
+ } else {
+ v_29 = v_27;
+ };
+ if (v_20) {
+ nr_1_St_3_Idle = true;
+ } else {
+ nr_1_St_3_Idle = v_29;
+ };
+ nr_1 = nr_1_St_3_Idle;
+ break;
+ case Radiotrans__St_3_Rx_Packet:
+ ns_1 = ns_1_St_3_Rx_Packet;
+ nr_1 = nr_1_St_3_Rx_Packet;
+ break;
+ case Radiotrans__St_3_Calibrate:
+ ns_1 = ns_1_St_3_Calibrate;
+ nr_1 = nr_1_St_3_Calibrate;
+ break;
+ case Radiotrans__St_3_Tx:
+ ns_1 = ns_1_St_3_Tx;
+ nr_1 = nr_1_St_3_Tx;
+ break;
+ default:
+ break;
+ };
+ switch (self->ck_1) {
+ case Radiotrans__St_2_On:
+ v_30 = (adc_off_1&&ok_1);
+ if (v_30) {
+ ns_St_2_On = Radiotrans__St_2_Off;
+ nr_St_2_On = true;
+ } else {
+ ns_St_2_On = Radiotrans__St_2_On;
+ nr_St_2_On = false;
+ };
+ ns = ns_St_2_On;
+ nr = nr_St_2_On;
+ break;
+ case Radiotrans__St_2_Off:
+ v_31 = (adc_on_1&&ok_1);
+ if (v_31) {
+ ns_St_2_Off = Radiotrans__St_2_On;
+ } else {
+ ns_St_2_Off = Radiotrans__St_2_Off;
+ };
+ ns = ns_St_2_Off;
+ if (v_31) {
+ nr_St_2_Off = true;
+ } else {
+ nr_St_2_Off = false;
+ };
+ nr = nr_St_2_Off;
+ break;
+ default:
+ break;
+ };
+ self->ck = ns_1;
+ self->pnr_1 = nr_1;
+ self->ck_1 = ns;
+ self->pnr = nr;
+ v = (_out->a_on&&_out->red);
+ v_15 = !(v);;
+}
+