Revision | ceb83066323e9678d911f32f64f0d57be5d680c4 (tree) |
---|---|
Time | 2020-10-17 01:57:29 |
Author | Satoshi Yasuda <7m3tjz@jarl...> |
Commiter | Satoshi Yasuda |
modified: config.h
modified: configure
modified: debian/changelog
modified: dmonitor.h
modified: dmonitor_utils.c
modified: dvap.c
modified: dvmega_utils.c
modified: inet_read.c
modified: main.c
modified: rig_read.c
@@ -102,7 +102,7 @@ | ||
102 | 102 | #define PACKAGE_NAME "dmonitor" |
103 | 103 | |
104 | 104 | /* Define to the full name and version of this package. */ |
105 | -#define PACKAGE_STRING "dmonitor 01.60" | |
105 | +#define PACKAGE_STRING "dmonitor 01.61" | |
106 | 106 | |
107 | 107 | /* Define to the one symbol short name of this package. */ |
108 | 108 | #define PACKAGE_TARNAME "dmonitor" |
@@ -111,13 +111,13 @@ | ||
111 | 111 | #define PACKAGE_URL "" |
112 | 112 | |
113 | 113 | /* Define to the version of this package. */ |
114 | -#define PACKAGE_VERSION "01.60" | |
114 | +#define PACKAGE_VERSION "01.61" | |
115 | 115 | |
116 | 116 | /* Define to 1 if you have the ANSI C header files. */ |
117 | 117 | #define STDC_HEADERS 1 |
118 | 118 | |
119 | 119 | /* Version number of package */ |
120 | -#define VERSION "01.60" | |
120 | +#define VERSION "01.61" | |
121 | 121 | |
122 | 122 | /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, |
123 | 123 | <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the |
@@ -1,6 +1,6 @@ | ||
1 | 1 | #! /bin/sh |
2 | 2 | # Guess values for system-dependent variables and create Makefiles. |
3 | -# Generated by GNU Autoconf 2.69 for dmonitor 01.60. | |
3 | +# Generated by GNU Autoconf 2.69 for dmonitor 01.61. | |
4 | 4 | # |
5 | 5 | # Report bugs to <7m3tjz@jarl.com>. |
6 | 6 | # |
@@ -580,8 +580,8 @@ MAKEFLAGS= | ||
580 | 580 | # Identity of this package. |
581 | 581 | PACKAGE_NAME='dmonitor' |
582 | 582 | PACKAGE_TARNAME='dmonitor' |
583 | -PACKAGE_VERSION='01.60' | |
584 | -PACKAGE_STRING='dmonitor 01.60' | |
583 | +PACKAGE_VERSION='01.61' | |
584 | +PACKAGE_STRING='dmonitor 01.61' | |
585 | 585 | PACKAGE_BUGREPORT='7m3tjz@jarl.com' |
586 | 586 | PACKAGE_URL='' |
587 | 587 |
@@ -1277,7 +1277,7 @@ if test "$ac_init_help" = "long"; then | ||
1277 | 1277 | # Omit some internal or obsolete options to make the list less imposing. |
1278 | 1278 | # This message is too long to be a string in the A/UX 3.1 sh. |
1279 | 1279 | cat <<_ACEOF |
1280 | -\`configure' configures dmonitor 01.60 to adapt to many kinds of systems. | |
1280 | +\`configure' configures dmonitor 01.61 to adapt to many kinds of systems. | |
1281 | 1281 | |
1282 | 1282 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1283 | 1283 |
@@ -1344,7 +1344,7 @@ fi | ||
1344 | 1344 | |
1345 | 1345 | if test -n "$ac_init_help"; then |
1346 | 1346 | case $ac_init_help in |
1347 | - short | recursive ) echo "Configuration of dmonitor 01.60:";; | |
1347 | + short | recursive ) echo "Configuration of dmonitor 01.61:";; | |
1348 | 1348 | esac |
1349 | 1349 | cat <<\_ACEOF |
1350 | 1350 |
@@ -1435,7 +1435,7 @@ fi | ||
1435 | 1435 | test -n "$ac_init_help" && exit $ac_status |
1436 | 1436 | if $ac_init_version; then |
1437 | 1437 | cat <<\_ACEOF |
1438 | -dmonitor configure 01.60 | |
1438 | +dmonitor configure 01.61 | |
1439 | 1439 | generated by GNU Autoconf 2.69 |
1440 | 1440 | |
1441 | 1441 | Copyright (C) 2012 Free Software Foundation, Inc. |
@@ -1912,7 +1912,7 @@ cat >config.log <<_ACEOF | ||
1912 | 1912 | This file contains any messages produced by compilers while |
1913 | 1913 | running configure, to aid debugging if configure makes a mistake. |
1914 | 1914 | |
1915 | -It was created by dmonitor $as_me 01.60, which was | |
1915 | +It was created by dmonitor $as_me 01.61, which was | |
1916 | 1916 | generated by GNU Autoconf 2.69. Invocation command line was |
1917 | 1917 | |
1918 | 1918 | $ $0 $@ |
@@ -2778,7 +2778,7 @@ fi | ||
2778 | 2778 | |
2779 | 2779 | # Define the identity of the package. |
2780 | 2780 | PACKAGE='dmonitor' |
2781 | - VERSION='01.60' | |
2781 | + VERSION='01.61' | |
2782 | 2782 | |
2783 | 2783 | |
2784 | 2784 | cat >>confdefs.h <<_ACEOF |
@@ -5048,7 +5048,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
5048 | 5048 | # report actual input values of CONFIG_FILES etc. instead of their |
5049 | 5049 | # values after options handling. |
5050 | 5050 | ac_log=" |
5051 | -This file was extended by dmonitor $as_me 01.60, which was | |
5051 | +This file was extended by dmonitor $as_me 01.61, which was | |
5052 | 5052 | generated by GNU Autoconf 2.69. Invocation command line was |
5053 | 5053 | |
5054 | 5054 | CONFIG_FILES = $CONFIG_FILES |
@@ -5114,7 +5114,7 @@ _ACEOF | ||
5114 | 5114 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
5115 | 5115 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
5116 | 5116 | ac_cs_version="\\ |
5117 | -dmonitor config.status 01.60 | |
5117 | +dmonitor config.status 01.61 | |
5118 | 5118 | configured by $0, generated by GNU Autoconf 2.69, |
5119 | 5119 | with options \\"\$ac_cs_config\\" |
5120 | 5120 |
@@ -1,9 +1,16 @@ | ||
1 | +dmonitor (01.61) unstable; urgency=low | |
2 | + | |
3 | + * update Closes: (#121) | |
4 | + * BUG fixed for dvap header routine (dvap_weire) | |
5 | + | |
6 | + -- Satoshi Yasuda <7m3tjz@jarl.com> Fri, 16 Oct 2020 20:00:00 +0900 | |
7 | + | |
1 | 8 | dmonitor (01.60) unstable; urgency=low |
2 | 9 | |
3 | 10 | * update Closes: (#120) |
4 | 11 | * BUG fixed for node adapter routine |
5 | 12 | |
6 | - -- Satoshi Yasuda <7m3tjz@jarl.com> Thu, 15 Oct 2020 13:40:00 +0900 | |
13 | + -- Satoshi Yasuda <7m3tjz@jarl.com> Thu, 15 Oct 2020 14:30:00 +0900 | |
7 | 14 | |
8 | 15 | dmonitor (01.59) unstable; urgency=low |
9 | 16 |
@@ -34,6 +34,7 @@ | ||
34 | 34 | |
35 | 35 | //#define _DEBUG_DVMEGA |
36 | 36 | //#define _SPECIFICATIO_CHECK |
37 | +//#define _DEBUG_DVAP_SEND | |
37 | 38 | |
38 | 39 | #define GW 0x80 |
39 | 40 | #define ZR 0x40 |
@@ -15,6 +15,7 @@ void node_close (void); | ||
15 | 15 | void lcd_write(void); |
16 | 16 | int node_space_check (int length); |
17 | 17 | int check_getFifo(void); |
18 | + | |
18 | 19 | extern char dummy_frame_1[12]; |
19 | 20 | extern char dummy_frame_2[12]; |
20 | 21 | extern char dummy_frame_3[12]; |
@@ -404,6 +405,10 @@ int send_rig (void) | ||
404 | 405 | fifo_hold_limit = fifo_hold + 10; |
405 | 406 | } |
406 | 407 | else fifo_hold_limit = Fifo_cnt + 10; |
408 | + rig_last_frame_send = TRUE; | |
409 | + send_header_sw = FALSE; | |
410 | + memset (inet_frame_id, 0x00, 2); | |
411 | + frameID = 0; | |
407 | 412 | } |
408 | 413 | } |
409 | 414 | return TRUE; |
@@ -14,6 +14,7 @@ void short_msg_wrt (void); | ||
14 | 14 | void send_msg (unsigned char str[], unsigned char my2[]); |
15 | 15 | int cmd_check (unsigned char cmd[]); |
16 | 16 | int rig_status_check(void); |
17 | +unsigned short int crc_calc (unsigned char string[], int length); | |
17 | 18 | |
18 | 19 | struct termios save_attr; |
19 | 20 | char dvap_buff[1024]; |
@@ -588,6 +589,7 @@ void dvap_send_header (void) | ||
588 | 589 | { |
589 | 590 | int ret; |
590 | 591 | char temp[21]; |
592 | + unsigned short int crc; | |
591 | 593 | |
592 | 594 | if (dvap_header[25] == 0x20) return; |
593 | 595 | if (!cmd_check (&dvap_header[25])) return; |
@@ -620,6 +622,9 @@ void dvap_send_header (void) | ||
620 | 622 | inet_send_buff[4] = (m_seq >> 8) & 0xff; |
621 | 623 | inet_send_buff[5] = m_seq & 0xff; |
622 | 624 | inet_send_buff[7] |= FWD | ZR; |
625 | + crc = crc_calc (&inet_send_buff[17], 39); | |
626 | + inet_send_buff[56] = (crc >> 8) & 0xff; | |
627 | + inet_send_buff[57] = crc & 0xff; | |
623 | 628 | ret = sendto (in_addr_sock, inet_send_buff, 58, MSG_DONTWAIT, |
624 | 629 | (struct sockaddr *)&in_addr, sizeof(in_addr)); |
625 | 630 | m_seq++; |
@@ -628,6 +633,9 @@ void dvap_send_header (void) | ||
628 | 633 | inet_send_buff[5] = m_seq & 0xff; |
629 | 634 | memcpy (&inet_send_buff[28], area_call, 8); |
630 | 635 | memcpy (&inet_send_buff[20], area_call, 8); |
636 | + crc = crc_calc (&inet_send_buff[17], 39); | |
637 | + inet_send_buff[56] = (crc >> 8) & 0xff; | |
638 | + inet_send_buff[57] = crc & 0xff; | |
631 | 639 | sendto (in_addr_sock, inet_send_buff, 58, MSG_DONTWAIT, |
632 | 640 | (struct sockaddr *)&in_addr, sizeof(in_addr)); |
633 | 641 | memset (short_msg, 0x20, 20); |
@@ -645,6 +653,9 @@ void dvap_send_header (void) | ||
645 | 653 | m_seq &= 0xffff; |
646 | 654 | inet_send_buff[4] = (m_seq >> 8) & 0xff; |
647 | 655 | inet_send_buff[5] = m_seq & 0xff; |
656 | + crc = crc_calc (&inet_send_buff[17], 39); | |
657 | + inet_send_buff[56] = (crc >> 8) & 0xff; | |
658 | + inet_send_buff[57] = crc & 0xff; | |
648 | 659 | sendto (in_addr_sock, inet_send_buff, 58, MSG_DONTWAIT, |
649 | 660 | (struct sockaddr *)&in_addr, sizeof(in_addr)); |
650 | 661 | m_seq++; |
@@ -727,28 +738,29 @@ unsigned char dvap_send_pkt[47]; | ||
727 | 738 | void dvap_write (int fd, unsigned char buff[], int length) |
728 | 739 | { |
729 | 740 | unsigned short int tmp; |
741 | + unsigned short int crc; | |
730 | 742 | int ret; |
731 | - | |
732 | 743 | if (length == 42) |
733 | 744 | { |
734 | - if (!send_header_sw) | |
735 | - { | |
736 | - time(&dvap_keep_alive); | |
737 | - dvap_send_pkt[0] = 0x2f; | |
738 | - dvap_send_pkt[1] = 0xa0; | |
739 | - tmp = rand() & 0xffff; | |
740 | - memcpy (&dvap_send_pkt[2], &tmp, 2); | |
741 | - dvap_send_pkt[4] = 0x80; | |
742 | - dvap_send_pkt[5] = 0x00; | |
743 | - memcpy (&dvap_send_pkt[6], &buff[2], 41); | |
744 | - dvap_send_pkt[6] &= 0x07; | |
745 | - ret = write (fd, dvap_send_pkt, 47); | |
746 | - //dvap_send_pkt[4] = 0x00; | |
747 | - //dvap_send_pkt[5]++; | |
745 | + time(&dvap_keep_alive); | |
746 | + dvap_send_pkt[0] = 0x2f; | |
747 | + dvap_send_pkt[1] = 0xa0; | |
748 | + //tmp = rand() & 0xffff; | |
749 | + //memcpy (&dvap_send_pkt[2], &tmp, 2); | |
750 | + memcpy (&dvap_send_pkt[2], inet_frame_id, 2); | |
751 | + dvap_send_pkt[4] = 0x80; | |
752 | + dvap_send_pkt[5] = 0x00; | |
753 | + memcpy (&dvap_send_pkt[6], &buff[2], 41); | |
754 | + dvap_send_pkt[6] &= 0x07; | |
755 | + crc = crc_calc (&dvap_send_pkt[6], 39); | |
756 | + dvap_send_pkt[45] = (crc >> 8) & 0xff; | |
757 | + dvap_send_pkt[46] = crc & 0xff; | |
758 | + ret = write (fd, dvap_send_pkt, 47); | |
759 | + //dvap_send_pkt[4] = 0x00; | |
760 | + //dvap_send_pkt[5]++; | |
748 | 761 | |
749 | - send_header_sw = TRUE; | |
750 | - dvap_first_voice_pkt = TRUE; | |
751 | - syslog (LOG_DEBUG, "to DVAP rpt2:%8.8s rpt1:%8.8s ur:%8.8s my:%8.8s my2:%4.4s", &buff[5], &buff[13],&buff[21], &buff[29], &buff[37]); | |
762 | + dvap_first_voice_pkt = TRUE; | |
763 | + syslog (LOG_DEBUG, "to DVAP rpt2:%8.8s rpt1:%8.8s ur:%8.8s my:%8.8s my2:%4.4s", &buff[5], &buff[13],&buff[21], &buff[29], &buff[37]); | |
752 | 764 | #ifdef _DEBUG_DVAP_SEND |
753 | 765 | syslog (LOG_DEBUG, "%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x", |
754 | 766 | dvap_send_pkt[0],dvap_send_pkt[1],dvap_send_pkt[2],dvap_send_pkt[3], dvap_send_pkt[4],dvap_send_pkt[5],dvap_send_pkt[6], dvap_send_pkt[7],dvap_send_pkt[8],dvap_send_pkt[9], dvap_send_pkt[10],dvap_send_pkt[11],dvap_send_pkt[12], dvap_send_pkt[13],dvap_send_pkt[14],dvap_send_pkt[15]); |
@@ -757,35 +769,31 @@ syslog (LOG_DEBUG, "%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x | ||
757 | 769 | syslog (LOG_DEBUG, "%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x", |
758 | 770 | dvap_send_pkt[32],dvap_send_pkt[33],dvap_send_pkt[34],dvap_send_pkt[35], dvap_send_pkt[36],dvap_send_pkt[37],dvap_send_pkt[38], dvap_send_pkt[39],dvap_send_pkt[40],dvap_send_pkt[41], dvap_send_pkt[42],dvap_send_pkt[43],dvap_send_pkt[44], dvap_send_pkt[45],dvap_send_pkt[46],dvap_send_pkt[47]); |
759 | 771 | #endif |
760 | - } | |
761 | 772 | } |
762 | 773 | else if (length == 17) |
763 | 774 | { |
764 | - //if (send_header_sw) | |
765 | - { | |
766 | - if (!dvap_first_voice_pkt || !memcmp (&buff[13], resync , 3)) | |
767 | - { | |
768 | - time(&dvap_keep_alive); | |
769 | - dvap_send_pkt[0] = 0x12; | |
770 | - dvap_send_pkt[1] = 0xc0; | |
771 | - dvap_send_pkt[4] = buff[3]; | |
772 | - memcpy (&dvap_send_pkt[6], &buff[4], 12); | |
773 | - if ((dvap_send_pkt[4] & 0x40) || | |
774 | - (!memcmp (&dvap_send_pkt[6], &lastframe[3], 3) && !memcmp (&dvap_send_pkt[15], lastframe, 3))) | |
775 | - { | |
776 | - dvap_send_pkt[4] |= 0x40; | |
777 | - send_header_sw = FALSE; | |
778 | - } | |
779 | - ret = write (fd, dvap_send_pkt, 18); | |
780 | - dvap_send_pkt[5]++; | |
781 | - //dvap_send_pkt[4]++; | |
782 | - //if (dvap_send_pkt[4] == 21) dvap_send_pkt[4] = 0; | |
783 | - dvap_first_voice_pkt = FALSE; | |
775 | + if (!dvap_first_voice_pkt || !memcmp (&buff[13], resync , 3)) | |
776 | + { | |
777 | + time(&dvap_keep_alive); | |
778 | + dvap_send_pkt[0] = 0x12; | |
779 | + dvap_send_pkt[1] = 0xc0; | |
780 | + dvap_send_pkt[4] = buff[3]; | |
781 | + memcpy (&dvap_send_pkt[6], &buff[4], 12); | |
782 | + if ((dvap_send_pkt[4] & 0x40) || | |
783 | + (!memcmp (&dvap_send_pkt[6], &lastframe[3], 3) && !memcmp (&dvap_send_pkt[15], lastframe, 3))) | |
784 | + { | |
785 | + dvap_send_pkt[4] |= 0x40; | |
786 | + send_header_sw = FALSE; | |
787 | + } | |
788 | + ret = write (fd, dvap_send_pkt, 18); | |
789 | + dvap_send_pkt[5]++; | |
790 | + //dvap_send_pkt[4]++; | |
791 | + //if (dvap_send_pkt[4] == 21) dvap_send_pkt[4] = 0; | |
792 | + dvap_first_voice_pkt = FALSE; | |
784 | 793 | #ifdef _DEBUG_DVAP_SEND |
785 | 794 | syslog (LOG_DEBUG, "%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x %2.2x", |
786 | 795 | dvap_send_pkt[0], dvap_send_pkt[1], dvap_send_pkt[2], dvap_send_pkt[3], dvap_send_pkt[4], dvap_send_pkt[5], dvap_send_pkt[6], dvap_send_pkt[7], dvap_send_pkt[8], dvap_send_pkt[9], dvap_send_pkt[10], dvap_send_pkt[11], dvap_send_pkt[12], dvap_send_pkt[13], dvap_send_pkt[14], dvap_send_pkt[15], dvap_send_pkt[16], dvap_send_pkt[17]); |
787 | 796 | #endif |
788 | - } | |
789 | 797 | } |
790 | 798 | } |
791 | 799 | else |
@@ -159,6 +159,9 @@ void dvmega_read (void) | ||
159 | 159 | inet_send_buff[4] = (m_seq >> 8) & 0xff; |
160 | 160 | inet_send_buff[5] = m_seq & 0xff; |
161 | 161 | inet_send_buff[7] |= FWD | ZR; |
162 | + crc = crc_calc (&inet_send_buff[17], 39); | |
163 | + inet_send_buff[56] = (crc >> 8) & 0xff; | |
164 | + inet_send_buff[57] = crc & 0xff; | |
162 | 165 | ret = sendto (in_addr_sock, inet_send_buff, 58, MSG_DONTWAIT, |
163 | 166 | (struct sockaddr *)&in_addr, sizeof(in_addr)); |
164 | 167 | m_seq++; |
@@ -181,6 +184,9 @@ void dvmega_read (void) | ||
181 | 184 | m_seq &= 0xffff; |
182 | 185 | inet_send_buff[4] = (m_seq >> 8) & 0xff; |
183 | 186 | inet_send_buff[5] = m_seq & 0xff; |
187 | + crc = crc_calc (&inet_send_buff[17], 39); | |
188 | + inet_send_buff[56] = (crc >> 8) & 0xff; | |
189 | + inet_send_buff[57] = crc & 0xff; | |
184 | 190 | sendto (in_addr_sock, inet_send_buff, 58, MSG_DONTWAIT, |
185 | 191 | (struct sockaddr *)&in_addr, sizeof(in_addr)); |
186 | 192 | m_seq++; |
@@ -177,6 +177,8 @@ void inet_read (void) | ||
177 | 177 | { |
178 | 178 | if ((inet_frame_id[0] == 0x00) && (inet_frame_id[1] == 0x00)) |
179 | 179 | { |
180 | +if (recvBuff[7] & GW) syslog (LOG_DEBUG, "GW area:%8.8s rpt2:%8.8s rpt1:%8.8s", area_call, &recvBuff[20], &recvBuff[28]); | |
181 | +if (recvBuff[7] & ZR) syslog (LOG_DEBUG, "ZR area:%8.8s rpt2:%8.8s rpt1:%8.8s", area_call, &recvBuff[20], &recvBuff[28]); | |
180 | 182 | if (((recvBuff[7] & ZR) && !memcmp (area_call, &recvBuff[28], 8)) || scan_sw |
181 | 183 | || ((recvBuff[7] & GW) && !memcmp (area_call, &recvBuff[20], 8))) |
182 | 184 | { |
@@ -208,16 +210,16 @@ void inet_read (void) | ||
208 | 210 | short_msg_wrt(); |
209 | 211 | beep_sw = OFF; |
210 | 212 | send_header_sw = TRUE; |
211 | - } | |
212 | - if (!scan_sw) | |
213 | - { | |
214 | - if (recvBuff[7] & GW) syslog (LOG_NOTICE, "%8.8s from GW", &recvBuff[44]); | |
215 | - else if (recvBuff[7] & ZR) syslog (LOG_NOTICE, "%8.8s from ZR", &recvBuff[44]); | |
216 | - } | |
217 | - else | |
218 | - { | |
219 | - if (recvBuff[7] & GW) fprintf (status_fd, "%8.8s from GW\n", &recvBuff[44]); | |
220 | - else if (recvBuff[7] & ZR) fprintf (status_fd, "%8.8s from ZR\n", &recvBuff[44]); | |
213 | + if (!scan_sw) | |
214 | + { | |
215 | + if (recvBuff[7] & GW) syslog (LOG_NOTICE, "%8.8s from GW", &recvBuff[44]); | |
216 | + else if (recvBuff[7] & ZR) syslog (LOG_NOTICE, "%8.8s from ZR", &recvBuff[44]); | |
217 | + } | |
218 | + else | |
219 | + { | |
220 | + if (recvBuff[7] & GW) fprintf (status_fd, "%8.8s from GW\n", &recvBuff[44]); | |
221 | + else if (recvBuff[7] & ZR) fprintf (status_fd, "%8.8s from ZR\n", &recvBuff[44]); | |
222 | + } | |
221 | 223 | } |
222 | 224 | } |
223 | 225 | } |
@@ -72,6 +72,7 @@ int main(int argc, char *argv[]) | ||
72 | 72 | |
73 | 73 | FILE *pid_file; |
74 | 74 | FILE *dmonitor_file; |
75 | + FILE *model; | |
75 | 76 | |
76 | 77 | ret = nice (-15); |
77 | 78 | send_sw = FALSE; |
@@ -225,9 +226,24 @@ int main(int argc, char *argv[]) | ||
225 | 226 | sizeof(HOLE_PUNCHD_SERVER)); |
226 | 227 | hole_punch_port = HOLE_PUNCHD_PORT; |
227 | 228 | |
228 | - if (!scan_sw) syslog (LOG_INFO, "Connected to %8.8s (%s:%d) from %8.8s", | |
229 | + model = fopen ("/proc/device-tree/model", "r"); | |
230 | + if (model) | |
231 | + { | |
232 | + fgets (pg_path, sizeof(pg_path), model); | |
233 | + fclose (model); | |
234 | + } | |
235 | + | |
236 | + if (!scan_sw) | |
237 | + { | |
238 | + syslog (LOG_INFO, "Connected to %8.8s (%s:%d) from %8.8s", | |
229 | 239 | area_call, dest_address, dest_inet_port, connect_call); |
230 | - else fprintf (status_fd, "Connected to %8.8s from %8.8s\n", area_call, connect_call); | |
240 | + syslog (LOG_INFO, "Model : %s", pg_path); | |
241 | + } | |
242 | + else | |
243 | + { | |
244 | + fprintf (status_fd, "Connected to %8.8s from %8.8s\n", area_call, connect_call); | |
245 | + fprintf (status_fd, "Model : %s\n", pg_path); | |
246 | + } | |
231 | 247 | memset (inet_frame_id, 0x00, 2); |
232 | 248 | frameID = 0; |
233 | 249 | gettimeofday (&inet_time, NULL); |
@@ -29,6 +29,7 @@ void rig_not_connect_msg (void); | ||
29 | 29 | int dvmega_init (void); |
30 | 30 | int dvmega_init_recv (void); |
31 | 31 | int cmd_check (unsigned char cmd[]); |
32 | +unsigned short int crc_calc (char str[], int length); | |
32 | 33 | |
33 | 34 | char init_pkt[] = {0xff, 0xff, 0xff}; |
34 | 35 | char alive[] = {0x02, 0x02, 0xff}; |
@@ -335,6 +336,7 @@ int rig_read (void) | ||
335 | 336 | struct timeval cu_time; |
336 | 337 | struct timeval t_time; |
337 | 338 | struct timeval ack_timeout; |
339 | + unsigned short int crc; | |
338 | 340 | |
339 | 341 | if (FD_ISSET (rig_fd, &read_set)) |
340 | 342 | { |
@@ -440,6 +442,9 @@ int rig_read (void) | ||
440 | 442 | inet_send_buff[4] = (m_seq >> 8) & 0xff; |
441 | 443 | inet_send_buff[5] = m_seq & 0xff; |
442 | 444 | inet_send_buff[7] |= FWD | ZR; |
445 | + crc = crc_calc (&inet_send_buff[17], 39); | |
446 | + inet_send_buff[56] = (crc >> 8) & 0xff; | |
447 | + inet_send_buff[57] = crc & 0xff; | |
443 | 448 | ret = sendto (in_addr_sock, inet_send_buff, 58, MSG_DONTWAIT, |
444 | 449 | (struct sockaddr *)&in_addr, sizeof(in_addr)); |
445 | 450 | m_seq++; |
@@ -464,6 +469,9 @@ int rig_read (void) | ||
464 | 469 | m_seq &= 0xffff; |
465 | 470 | inet_send_buff[4] = (m_seq >> 8) & 0xff; |
466 | 471 | inet_send_buff[5] = m_seq & 0xff; |
472 | + crc = crc_calc (&inet_send_buff[17], 39); | |
473 | + inet_send_buff[56] = (crc >> 8) & 0xff; | |
474 | + inet_send_buff[57] = crc & 0xff; | |
467 | 475 | sendto (in_addr_sock, inet_send_buff, 58, MSG_DONTWAIT, |
468 | 476 | (struct sockaddr *)&in_addr, sizeof(in_addr)); |
469 | 477 | m_seq++; |