diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-27 11:58:17 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-04-27 11:58:17 +0800 |
| commit | 5e4eb6bef2a611ef4f39dbf577c550317b965e7f (patch) | |
| tree | 2b9851c2c241f10215ec013f28bad456a6622cfc /lock/fend.c | |
| parent | f4cb00a6ea7d1a9b2e559de2981e700ce7b97688 (diff) | |
| download | smart-home-5e4eb6bef2a611ef4f39dbf577c550317b965e7f.tar.gz | |
Control servo remotely without encryption.
Diffstat (limited to 'lock/fend.c')
| -rw-r--r-- | lock/fend.c | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/lock/fend.c b/lock/fend.c index 4b63759..927c310 100644 --- a/lock/fend.c +++ b/lock/fend.c @@ -61,36 +61,24 @@ int main(void) sei(); for (;;) { - if ((islock || isunlock) && !sync) { - xor(KEY, SYN, buf, WDLEN); + if (islock) { do { - sync = radio_sendto(txaddr, buf, WDLEN); - _delay_ms(10); + sync = radio_sendto(txaddr, LOCK, WDLEN); + _delay_ms(50); } while (!sync); - sync = 1; - uart_write_line("sent syn"); + sync = 0; + islock = 0; + uart_write_line("sent LOCK"); } - if (rxd) { - if (sync) { - n = radio_recv(buf, WDLEN); - buf[n] = '\0'; - xor(KEY, buf, key, WDLEN); - uart_write_line("read key"); - if (islock) { - islock = 0; - xor(key, LOCK, buf, WDLEN); - } else if (isunlock) { - isunlock = 0; - xor(key, UNLOCK, buf, WDLEN); - } - radio_sendto(txaddr, buf, WDLEN); - sync = 0; - uart_write_line("sent command"); - } else { - radio_flush_rx(); - } - rxd = 0; + if (isunlock) { + do { + sync = radio_sendto(txaddr, UNLOCK, WDLEN); + _delay_ms(50); + } while (!sync); + sync = 0; + isunlock = 0; + uart_write_line("sent UNLOCK"); } } return 0; |
