summaryrefslogtreecommitdiffstats
path: root/aliznayem/gateway.c
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2025-01-19 18:45:05 +0800
committerSadeep Madurange <sadeep@asciimx.com>2025-01-19 18:45:49 +0800
commita7644c020c4c2b72fc0f13aeea4be47ba08f1961 (patch)
tree4eb34f3b93d81c445af49c1cf81e2ec82a50b3c4 /aliznayem/gateway.c
parent4c0557793d80cbcc6575b83db9cb3a44feeca229 (diff)
downloadsmart-home-a7644c020c4c2b72fc0f13aeea4be47ba08f1961.tar.gz
Try with aliznayem C port (no luck).
Diffstat (limited to 'aliznayem/gateway.c')
-rw-r--r--aliznayem/gateway.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/aliznayem/gateway.c b/aliznayem/gateway.c
new file mode 100644
index 0000000..3579674
--- /dev/null
+++ b/aliznayem/gateway.c
@@ -0,0 +1,48 @@
+#include <avr/io.h>
+#include <stdlib.h>
+#include <util/delay.h>
+
+#include "RFM69.h"
+#include "RFM69registers.h"
+
+#include "serial.h"
+
+#define NETWORKID 33
+#define NODEID 4
+
+int main(void)
+{
+ // initialize RFM69
+ serial_init();
+
+ rfm69_init(433, NODEID, NETWORKID);
+ setHighPower(1); // if model number rfm69hw
+ setPowerLevel(30); // 0-31; 5dBm to 20 dBm
+ encrypt(NULL); // if set has to be 16 bytes. example: "1234567890123456"
+
+ // initialize 16x2 LCD
+
+ while (1)
+ {
+ if(receiveDone())
+ {
+ _delay_ms(10);
+ if(ACKRequested())
+ {
+ char ack[0];
+ sendACK(ack, 0);
+ }
+ char stringData[17];
+ for(uint8_t i=0;i<16;i++) // max 16 digit can be shown in this case
+ {
+ stringData[i]=DATA[i];
+ }
+
+ stringData[16] = 0;
+ serial_write_line(stringData);
+ } else {
+ serial_write_line("No data");
+ _delay_ms(500);
+ }
+ }
+}