Revision | e0ac5a1aba2d27b4d13a44093fa9ca40ffcfda1d (tree) |
---|---|
Zeit | 2020-10-01 09:36:18 |
Autor | Satoshi Yasuda <7m3tjz@jarl...> |
Commiter | Satoshi Yasuda |
modified: Makefile.am
modified: debian/changelog
modified: debian/install
modified: dmonitor.h
new file: dmonitor_cmd.c
modified: dvap.c
modified: dvmega_utils.c
modified: from_node.c
modified: main.c
modified: rig_read.c
modified: rpt_conn.c
modified: rpt_conn_rig.c
modified: rpt_node_utils.c
modified: send_msg.c
@@ -1,5 +1,5 @@ | ||
1 | 1 | bin_PROGRAMS = dmonitor repeater_mon repeater_mon_light repeater_scan rpt_conn dstar_ntpdate |
2 | -dmonitor_SOURCES = main.c dmonitor_utils.c init.c inet_read.c rig_read.c dvap_utils.c dvap.c dvap_conf.c dvmega.c dvmega_conf.c dstar_data.c crc.c send_msg.c dvmega_utils.c node_conf.c node_utils.c from_node.c send_node.c PICinfo.c crc.h dvap.h dmonitor.h init.h config.h dstar.h | |
2 | +dmonitor_SOURCES = main.c dmonitor_utils.c init.c dmonitor_cmd.c inet_read.c rig_read.c dvap_utils.c dvap.c dvap_conf.c dvmega.c dvmega_conf.c dstar_data.c crc.c send_msg.c dvmega_utils.c node_conf.c node_utils.c from_node.c send_node.c PICinfo.c crc.h dvap.h dmonitor.h init.h config.h dstar.h | |
3 | 3 | dmonitor_LDADD = -lusb -lwiringPi -lcrypto |
4 | 4 | repeater_mon_SOURCES = repeater_mon.c repeater_mon.h |
5 | 5 | repeater_mon_light_SOURCES = repeater_mon_light.c repeater_mon.h |
@@ -4,7 +4,7 @@ dmonitor (01.56) unstable; urgency=low | ||
4 | 4 | * BUF fixed for demega |
5 | 5 | * added node adapter |
6 | 6 | |
7 | - -- Satoshi Yasuda <7m3tjz@jarl.com> Thu, 01 Oct 2020 05:30:00 +0900 | |
7 | + -- Satoshi Yasuda <7m3tjz@jarl.com> Thu, 01 Oct 2020 07:50:00 +0900 | |
8 | 8 | |
9 | 9 | dmonitor (01.55) unstable; urgency=low |
10 | 10 |
@@ -86,5 +86,6 @@ repeater_scan.org /var/www/html | ||
86 | 86 | rpt_mast.txt /var/www |
87 | 87 | dvap.conf.save /var/www |
88 | 88 | dvmega.conf.save /var/www |
89 | +node.conf.save /var/www | |
89 | 90 | 99-dstar.rules /var/tmp |
90 | 91 | monitorix.conf /var/tmp |
@@ -275,3 +275,5 @@ int node_tx_inv; | ||
275 | 275 | int node_rx_inv; |
276 | 276 | |
277 | 277 | char node_last_frame_sw; |
278 | + | |
279 | +int beep_sw; |
@@ -0,0 +1,53 @@ | ||
1 | +#include "dmonitor.h" | |
2 | + | |
3 | + | |
4 | +int cmd_check (unsigned char cmd[]) | |
5 | +{ | |
6 | + if (!scan_sw) syslog (LOG_NOTICE, "%8.8s from Rig", cmd); | |
7 | + else | |
8 | + { | |
9 | + fprintf (status_fd, "%8.8s from Rig\n", cmd); | |
10 | + } | |
11 | + if (!memcmp (cmd, "DISCON", 6) || !memcmp (cmd, "UNLINK", 6)) | |
12 | + { | |
13 | + sprintf (msg_temp, "UNLINK FROM %8.8s", area_call); | |
14 | + memcpy (mycall2, "UNLK", 4); | |
15 | + send_msg_sw = TRUE; | |
16 | + sig_term = TRUE; | |
17 | + return FALSE; | |
18 | + } | |
19 | + if (!memcmp (cmd, "STATUS", 6)) | |
20 | + { | |
21 | + sprintf (msg_temp, "LINKED TO %8.8s ", area_call); | |
22 | + memcpy (mycall2, "DMON", 4); | |
23 | + send_msg_sw = TRUE; | |
24 | + return FALSE; | |
25 | + } | |
26 | + if (!memcmp (cmd, "SCAN", 4)) | |
27 | + { | |
28 | + memcpy (msg_temp, "SCAN NOT SUPPORT ", 20); | |
29 | + memcpy (mycall2, "DMON", 4); | |
30 | + send_msg_sw = TRUE; | |
31 | + return FALSE; | |
32 | + } | |
33 | + if (!memcmp (cmd, "REBOOT", 6)) | |
34 | + { | |
35 | + memcpy (msg_temp, "RASPI REBOOT ", 20); | |
36 | + memcpy (mycall2, "DMON", 4); | |
37 | + send_msg_sw = TRUE; | |
38 | + reboot_sw = TRUE; | |
39 | + return FALSE; | |
40 | + } | |
41 | + if (!memcmp (cmd, "SHUTDOWN", 8)) | |
42 | + { | |
43 | + memcpy (msg_temp, "RASPI SHUTDOWN ", 20); | |
44 | + memcpy (mycall2, "DMON", 4); | |
45 | + shutdown_sw = TRUE; | |
46 | + return FALSE; | |
47 | + } | |
48 | + if (!memcmp (cmd, "CQCQCQ", 6)) | |
49 | + { | |
50 | + beep_sw = TRUE; | |
51 | + } | |
52 | + return TRUE; | |
53 | +} |
@@ -11,6 +11,7 @@ void inet_led_onoff(void); | ||
11 | 11 | void dstar_data(unsigned char string[], int inet); |
12 | 12 | void short_msg_wrt (void); |
13 | 13 | void send_msg (unsigned char str[], unsigned char my2[]); |
14 | +int cmd_check (unsigned char cmd[]); | |
14 | 15 | |
15 | 16 | struct termios save_attr; |
16 | 17 | char dvap_buff[1024]; |
@@ -587,44 +588,7 @@ void dvap_send_header (void) | ||
587 | 588 | char temp[21]; |
588 | 589 | |
589 | 590 | if (dvap_header[25] == 0x20) return; |
590 | - if (!memcmp (&dvap_header[25], "DISCON", 6) || !memcmp (&dvap_header[25], "UNLINK", 6)) | |
591 | - { | |
592 | - sprintf (msg_temp, "UNLINK FROM %8.8s", area_call); | |
593 | - memcpy (mycall2, "UNLK", 4); | |
594 | - send_msg_sw = TRUE; | |
595 | - sig_term = TRUE; | |
596 | - return; | |
597 | - } | |
598 | - if (!memcmp (&dvap_header[25], "STATUS", 6)) | |
599 | - { | |
600 | - sprintf (msg_temp, "LINKED TO %8.8s ", area_call); | |
601 | - memcpy (mycall2, "DMON", 4); | |
602 | - send_msg_sw = TRUE; | |
603 | - return; | |
604 | - } | |
605 | - if (!memcmp (&dvap_header[25], "SCAN", 4)) | |
606 | - { | |
607 | - memcpy (msg_temp, "SCAN NOT SUPPORT ", 20); | |
608 | - memcpy (mycall2, "DMON", 4); | |
609 | - send_msg_sw = TRUE; | |
610 | - return; | |
611 | - } | |
612 | - if (!memcmp (&dvap_header[25], "REBOOT", 6)) | |
613 | - { | |
614 | - memcpy (msg_temp, "RASPI REBOOT ", 20); | |
615 | - memcpy (mycall2, "DMON", 4); | |
616 | - send_msg_sw = TRUE; | |
617 | - reboot_sw = TRUE; | |
618 | - return; | |
619 | - } | |
620 | - if (!memcmp (&dvap_header[25], "SHUTDOWN", 8)) | |
621 | - { | |
622 | - memcpy (msg_temp, "RASPI REBOOT ", 20); | |
623 | - memcpy (mycall2, "DMON", 4); | |
624 | - send_msg_sw = TRUE; | |
625 | - shutdown_sw = TRUE; | |
626 | - return; | |
627 | - } | |
591 | + if (!cmd_check (&dvap_header[25])) return; | |
628 | 592 | if (!memcmp (&dvap_header[25], "CALIBRAT", 8)) |
629 | 593 | { |
630 | 594 | dvap_state = DVAP_CALIBRATION_CLEAR;; |
@@ -10,6 +10,7 @@ void short_msg_wrt(void); | ||
10 | 10 | void dstar_data (unsigned char string[], int inet); |
11 | 11 | void rig_buff_reset (int length); |
12 | 12 | unsigned short int crc_calc (unsigned char string[], int length); |
13 | +int cmd_check (unsigned char cmd[]); | |
13 | 14 | |
14 | 15 | int rig_status_check (void); |
15 | 16 | char lastframe1[3] = {0x55, 0x55, 0x55}; |
@@ -135,44 +136,7 @@ void dvmega_read (void) | ||
135 | 136 | if (!scan_sw) syslog (LOG_NOTICE, "%8.8s from DVMEGA", &rig_buff[30]); |
136 | 137 | else |
137 | 138 | fprintf (status_fd, "%8.8s from DVMEGA\n", &rig_buff[30]); |
138 | - if (!memcmp (&rig_buff[22], "DISCON", 6) || !memcmp (&rig_buff[22], "UNLINK", 6)) | |
139 | - { | |
140 | - sprintf (msg_temp, "UNLINK FROM %8.8s", area_call); | |
141 | - memcpy (mycall2, "UNLK", 4); | |
142 | - send_msg_sw = TRUE; | |
143 | - sig_term = TRUE; | |
144 | - break; | |
145 | - } | |
146 | - if (!memcmp (&rig_buff[22], "STATUS", 6)) | |
147 | - { | |
148 | - sprintf (msg_temp, "LINKED TO %8.8s ", area_call); | |
149 | - memcpy (mycall2, "DMON", 4); | |
150 | - send_msg_sw = TRUE; | |
151 | - break; | |
152 | - } | |
153 | - if (!memcmp (&rig_buff[22], "SCAN", 4)) | |
154 | - { | |
155 | - memcpy (msg_temp, "SCAN NOT SUPPORT ", 20); | |
156 | - memcpy (mycall2, "DMON", 4); | |
157 | - send_msg_sw = TRUE; | |
158 | - break; | |
159 | - } | |
160 | - if (!memcmp (&rig_buff[22], "REBOOT", 6)) | |
161 | - { | |
162 | - memcpy (msg_temp, "RASPI REBOOT ", 20); | |
163 | - memcpy (mycall2, "DMON", 4); | |
164 | - send_msg_sw = TRUE; | |
165 | - reboot_sw = TRUE; | |
166 | - break; | |
167 | - } | |
168 | - if (!memcmp (&rig_buff[22], "SHUTDOWN", 8)) | |
169 | - { | |
170 | - memcpy (msg_temp, "RASPI SHUTDOWN ", 20); | |
171 | - memcpy (mycall2, "DMON", 4); | |
172 | - send_msg_sw = TRUE; | |
173 | - shutdown_sw = TRUE; | |
174 | - break; | |
175 | - } | |
139 | + if (!cmd_check (&rig_buff[22])) break; | |
176 | 140 | gw_on = FALSE; |
177 | 141 | if (!inet_send_buff_set()) break; |
178 | 142 | inet_send_buff[16] = 0x80; |
@@ -8,6 +8,8 @@ int inet_send_buff_set (void); | ||
8 | 8 | void short_msg_wrt (void); |
9 | 9 | void dstar_data (unsigned char string[], int inet); |
10 | 10 | unsigned short int crc_calc (char str[], int length); |
11 | +int cmd_check (unsigned char cmd[]); | |
12 | + | |
11 | 13 | |
12 | 14 | char node_header_save[58]; |
13 | 15 |
@@ -46,43 +48,7 @@ void header_read_from_node(void) /* read from rig (DV packet) */ | ||
46 | 48 | { |
47 | 49 | fprintf (status_fd, "%8.8s from Rig\n", usb.node_hdr.MyCall); |
48 | 50 | } |
49 | - if (!memcmp (usb.node_hdr.YourCall, "DISCON", 6) || !memcmp (usb.node_hdr.YourCall, "UNLINK", 6)) | |
50 | - { | |
51 | - sprintf (msg_temp, "UNLINK FROM %8.8s", area_call); | |
52 | - memcpy (mycall2, "UNLK", 4); | |
53 | - send_msg_sw = TRUE; | |
54 | - sig_term = TRUE; | |
55 | - return; | |
56 | - } | |
57 | - if (!memcmp (usb.node_hdr.YourCall, "STATUS", 6)) | |
58 | - { | |
59 | - sprintf (msg_temp, "LINKED TO %8.8s ", area_call); | |
60 | - memcpy (mycall2, "DMON", 4); | |
61 | - send_msg_sw = TRUE; | |
62 | - return; | |
63 | - } | |
64 | - if (!memcmp (usb.node_hdr.YourCall, "SCAN", 4)) | |
65 | - { | |
66 | - memcpy (msg_temp, "SCAN NOT SUPPORT ", 20); | |
67 | - memcpy (mycall2, "DMON", 4); | |
68 | - send_msg_sw = TRUE; | |
69 | - return; | |
70 | - } | |
71 | - if (!memcmp (usb.node_hdr.YourCall, "REBOOT", 6)) | |
72 | - { | |
73 | - memcpy (msg_temp, "RASPI REBOOT ", 20); | |
74 | - memcpy (mycall2, "DMON", 4); | |
75 | - send_msg_sw = TRUE; | |
76 | - reboot_sw = TRUE; | |
77 | - return; | |
78 | - } | |
79 | - if (!memcmp (usb.node_hdr.YourCall, "SHUTDOWN", 8)) | |
80 | - { | |
81 | - memcpy (msg_temp, "RASPI SHUTDOWN ", 20); | |
82 | - memcpy (mycall2, "DMON", 4); | |
83 | - shutdown_sw = TRUE; | |
84 | - return; | |
85 | - } | |
51 | + if (!cmd_check (usb.node_hdr.YourCall)) return; | |
86 | 52 | gw_on = FALSE; |
87 | 53 | if (!inet_send_buff_set()) return; |
88 | 54 | inet_send_buff[16] = 0x80; |
@@ -36,6 +36,7 @@ void wait_disconnect (void); | ||
36 | 36 | void send_msg (char str[], char my2[]); |
37 | 37 | void dvmega_read(void); |
38 | 38 | void node_close (void); |
39 | +void send_beep (void); | |
39 | 40 | |
40 | 41 | time_t send_time; |
41 | 42 | unsigned char *ppp; |
@@ -80,6 +81,7 @@ int main(int argc, char *argv[]) | ||
80 | 81 | error_msg_sw = FALSE; |
81 | 82 | rig_send_sw = FALSE; |
82 | 83 | send_msg_sw = FALSE; |
84 | + beep_sw = FALSE; | |
83 | 85 | |
84 | 86 | openlog ("dmonitor", LOG_CONS | LOG_PID, LOG_LOCAL0); |
85 | 87 |
@@ -135,7 +137,7 @@ int main(int argc, char *argv[]) | ||
135 | 137 | if (length <= 0 ) return -1; |
136 | 138 | pg_path[length] = 0x00; |
137 | 139 | if (ETagGen (pg_path, MD5_dmonitor) < 0) return 5; |
138 | - //memcpy (MD5_dmonitor, "5ebe211107266a57b1af14a7fdcd8480", 32); | |
140 | + memcpy (MD5_dmonitor, "5ebe211107266a57b1af14a7fdcd8480", 32); | |
139 | 141 | |
140 | 142 | Rp = malloc (sizeof (struct FifoPkt) - 1024); |
141 | 143 | Wp = Rp; |
@@ -389,6 +391,11 @@ top: | ||
389 | 391 | skip: |
390 | 392 | if (rig_fd) |
391 | 393 | { |
394 | + if (beep_sw && !scan_sw || (frameID == 0)) | |
395 | + { | |
396 | + send_beep (); | |
397 | + beep_sw = FALSE; | |
398 | + } | |
392 | 399 | if (send_msg_sw && !scan_sw) |
393 | 400 | { |
394 | 401 | if (((rig_type == ICOM) && rig_status_check()) |
@@ -27,6 +27,7 @@ void short_msg_wrt (void); | ||
27 | 27 | void rig_not_connect_msg (void); |
28 | 28 | int dvmega_init (void); |
29 | 29 | int dvmega_init_recv (void); |
30 | +int cmd_check (unsigned char cmd[]); | |
30 | 31 | |
31 | 32 | char init_pkt[] = {0xff, 0xff, 0xff}; |
32 | 33 | char alive[] = {0x02, 0x02, 0xff}; |
@@ -412,43 +413,7 @@ int rig_read (void) | ||
412 | 413 | { |
413 | 414 | fprintf (status_fd, "%8.8s from Rig\n", &rig_buff[29]); |
414 | 415 | } |
415 | - if (!memcmp (&rig_buff[21], "DISCON", 6) || !memcmp (&rig_buff[21], "UNLINK", 6)) | |
416 | - { | |
417 | - sprintf (msg_temp, "UNLINK FROM %8.8s", area_call); | |
418 | - memcpy (mycall2, "UNLK", 4); | |
419 | - send_msg_sw = TRUE; | |
420 | - sig_term = TRUE; | |
421 | - return FALSE; | |
422 | - } | |
423 | - if (!memcmp (&rig_buff[21], "STATUS", 6)) | |
424 | - { | |
425 | - sprintf (msg_temp, "LINKED TO %8.8s ", area_call); | |
426 | - memcpy (mycall2, "DMON", 4); | |
427 | - send_msg_sw = TRUE; | |
428 | - return FALSE; | |
429 | - } | |
430 | - if (!memcmp (&rig_buff[21], "SCAN", 4)) | |
431 | - { | |
432 | - memcpy (msg_temp, "SCAN NOT SUPPORT ", 20); | |
433 | - memcpy (mycall2, "DMON", 4); | |
434 | - send_msg_sw = TRUE; | |
435 | - return FALSE; | |
436 | - } | |
437 | - if (!memcmp (&rig_buff[21], "REBOOT", 6)) | |
438 | - { | |
439 | - memcpy (msg_temp, "RASPI REBOOT ", 20); | |
440 | - memcpy (mycall2, "DMON", 4); | |
441 | - send_msg_sw = TRUE; | |
442 | - reboot_sw = TRUE; | |
443 | - return FALSE; | |
444 | - } | |
445 | - if (!memcmp (&rig_buff[21], "SHUTDOWN", 8)) | |
446 | - { | |
447 | - memcpy (msg_temp, "RASPI SHUTDOWN ", 20); | |
448 | - memcpy (mycall2, "DMON", 4); | |
449 | - shutdown_sw = TRUE; | |
450 | - return FALSE; | |
451 | - } | |
416 | + if (!cmd_check (&rig_buff[21])) return FALSE; | |
452 | 417 | gw_on = FALSE; |
453 | 418 | if (!inet_send_buff_set()) return TRUE; |
454 | 419 | inet_send_buff[16] = 0x80; |
@@ -217,7 +217,7 @@ skip: | ||
217 | 217 | if (connect_call[0] != 0x00) |
218 | 218 | { |
219 | 219 | syslog (LOG_INFO, "%8.8s wrong call", connect_call); |
220 | - sprintf (msg_temp, "WRONG CALL %8.8s ", connect_call); | |
220 | + sprintf (msg_temp, "WRONG CMD %8.8s ", connect_call); | |
221 | 221 | flag1 = 0x01; |
222 | 222 | memcpy (mycall2, "WRCL", 4); |
223 | 223 | send_msg_sw = TRUE; |
@@ -15,6 +15,9 @@ void dvap_write (int fd, unsigned char buff[], int length); | ||
15 | 15 | int read_dvmega(void); |
16 | 16 | void send_dvmega_status(void); |
17 | 17 | void dvmega_write (int fd, unsigned char buff[], int length); |
18 | +void node_write (unsigned char buff[], int length); | |
19 | +void dvmega (void); | |
20 | +void node (void); | |
18 | 21 | |
19 | 22 | time_t rig_alive_send_time; |
20 | 23 | int rig_error_cnt; |
@@ -1,6 +1,9 @@ | ||
1 | 1 | #include "rpt_conn.h" |
2 | 2 | |
3 | 3 | int htoi (char string[]); |
4 | +void header_read_from_node(void); | |
5 | +int voice_read_from_node(void); | |
6 | +void node_term (void); | |
4 | 7 | |
5 | 8 | void node_conf (void) |
6 | 9 | { |
@@ -100,3 +100,41 @@ void send_msg (unsigned char string[], unsigned char my2[]) | ||
100 | 100 | send_msg_sw = FALSE; |
101 | 101 | } |
102 | 102 | |
103 | +void send_beep (void) | |
104 | +{ | |
105 | + char hdr_buff[42]; | |
106 | + struct timeval temp_time; | |
107 | + | |
108 | + hdr_buff[0] = 0x29; | |
109 | + hdr_buff[1] = 0x20, | |
110 | + hdr_buff[2] = 0x00; | |
111 | + hdr_buff[3] = 0x00; | |
112 | + hdr_buff[4] = 0x00; | |
113 | + memcpy (&hdr_buff[5], "DIRECT ", 8); | |
114 | + memcpy (&hdr_buff[13], "DIRECT ", 8); | |
115 | + memcpy (&hdr_buff[21], "CQCQCQ ", 8); | |
116 | + memcpy (&hdr_buff[29], connect_call, 8); | |
117 | + memset (&hdr_buff[37], 0x20, 4); | |
118 | + hdr_buff[41] = 0xff; | |
119 | + | |
120 | + putFifo(42, hdr_buff); | |
121 | + | |
122 | + while (1) | |
123 | + { | |
124 | + gettimeofday (&c_time, NULL); | |
125 | + timeradd (&rig_send_time, &rig_send_time_20mSec, &temp_time); | |
126 | + if (timercmp (&c_time, &temp_time, >)) | |
127 | + { | |
128 | + if (send_rig()) | |
129 | + { | |
130 | + rig_send_time.tv_sec = temp_time.tv_sec; | |
131 | + rig_send_time.tv_usec = temp_time.tv_usec; | |
132 | + } | |
133 | + else | |
134 | + break; | |
135 | + } | |
136 | + } | |
137 | + sleep (1); | |
138 | + beep_sw = FALSE; | |
139 | +} | |
140 | + |