Commit graph

2092 commits

Author SHA1 Message Date
SASANO Takayoshi
88bbb0cd0f use getaddrinfo() AI_PASSIVE flag, to remove "::" and "0.0.0.0" 2020-04-06 18:35:12 +09:00
SASANO Takayoshi
15b5011ebf rewrite with getaddrinfo() API to support IPv6
Currently LCDproc seems to be IPv6 unsupported, but this code is
modified for the future IPv6-supported LCDproc.
2020-04-06 18:35:12 +09:00
SASANO Takayoshi
dad47317e6 set INADDR_ANY/IN6ADDR_ANY_INIT address string to m_socket
when CUDPSocket::open() is called with m_address (in CUDPSocket) is nothing,
IPv4 socket is created by "0.0.0.0" (INADDR_ANY) address.

This causes a problem that DMRGateway cannot connect to reflector on IPv6.
To choose default INADDR_ANY/IN6ADDR_ANY_INIT address, added
open(address_family) in UDPSocket.cpp.

Following code sets address string at construction, not modified.
	NXDNNetwork.cpp
	POCSAGNetwork.cpp
	YSFNetwork.cpp

Other codes does not set, modified open() -> open(address_family)
	DMRNetwork.cpp
	DStarNetwork.cpp
	MMDVMHost.cpp
	MobileGPS.cpp
	P25Network.cpp
	RemoteCommand.cpp
	RemoteControl.cpp

I think there is more clever method, but I have no other idea.

Maybe IPv6 support for digital radio works, but RemoteControl can work
IPv4 only.
2020-04-06 18:35:12 +09:00
SASANO Takayoshi
c92039d83b modified for IPv6 supported CUDPSocket 2020-04-06 18:34:54 +09:00
SASANO Takayoshi
5dccd5c5ce add match(), isnone() utility function
match() checks address family, IP address and port between
two sockaddr_storages.

isnone() checks sockaddr_storage has INADDR_NONE IPv4 address.
(sockaddr_storage has this address when lookup() failed)
2020-03-28 04:37:51 +09:00
SASANO Takayoshi
022d1a768b add IPv6 support (code from DAPNETGateway-IPv6) 2020-03-27 06:25:54 +09:00
SASANO Takayoshi
ac50244de3 Simplify termios setting for serial port
Testing MMDVMCal on OpenBSD/armv7 + BananaPi BPI-P2 requires CLOCAL flag.
Flags for termios should be same between OSX and other OSes
so unified them (except VMIN and VTIME setting).
2020-03-25 14:32:27 +09:00
Jonathan Naylor
6d27b8d957
Merge pull request #561 from jg1uaa/userdb
UserDB support (NXDN/DMR)
2020-03-24 22:19:04 +00:00
SASANO Takayoshi
d7d83ff4d0 use findWithName() to display user information when netork voice transmission 2020-03-15 10:36:57 +09:00
SASANO Takayoshi
e036ac8be3 revise snprintf() format string to simplify display layout (all modes) 2020-03-12 21:48:21 +09:00
SASANO Takayoshi
cc62fb62b7 add NXDN user data display 2020-03-10 06:14:17 +09:00
SASANO Takayoshi
36414acc6a add UserDB-based NXDN display interface 2020-03-10 05:46:24 +09:00
SASANO Takayoshi
d2751897fb cosme 2020-03-10 05:26:45 +09:00
SASANO Takayoshi
f6b5036651 NXDNLookup now use UserDB 2020-03-09 22:23:55 +09:00
SASANO Takayoshi
136a148480 delete unused variable 2020-03-09 22:16:21 +09:00
SASANO Takayoshi
6febd661f6 add return value description of writeDMRIntEx() 2020-03-09 20:48:14 +09:00
SASANO Takayoshi
92a3441116 code cleanup: remove unneeded std::string() 2020-03-08 20:47:48 +09:00
SASANO Takayoshi
5bd54e97cb add writeDMRIntEx() to support UserDB display 2020-03-08 08:43:57 +09:00
SASANO Takayoshi
4ff77c50d6 use UserDBentry from findWithName() to writeDMR(), add writeDMREx() 2020-03-08 08:06:27 +09:00
SASANO Takayoshi
abf17e19fc get() goes const, add clear() 2020-03-08 07:55:08 +09:00
SASANO Takayoshi
b7f5fdd8a2 use class UserDB (user-info storage) 2020-03-07 16:52:11 +09:00
SASANO Takayoshi
9b15454f96 makeindex() needs clear old result, add index.clear() 2020-03-07 16:44:50 +09:00
SASANO Takayoshi
a2911fa5c3 avoid registing "" string to reduce memory consumption 2020-03-06 21:56:00 +09:00
SASANO Takayoshi
92d9973ace revise LogWarning message, and cosmetic changes 2020-03-05 19:26:02 +09:00
SASANO Takayoshi
8ff3913729 add user database storage
simply added UserDB* source code and modified Makefile.
others are untouched.
2020-03-05 06:35:14 +09:00
Jonathan Naylor
ab13f355d5 Add decode for Call Alert and Call Alert Ack CSBKs. 2020-03-02 12:10:44 +00:00
Jonathan Naylor
8d87037ee5
Merge pull request #558 from jg1uaa/master
TFTSurenoo: Simplify DMR status display
2020-02-29 12:15:32 +00:00
SASANO Takayoshi
0bc6bcdb26 Fix DMR status display for duplex mode
Previous change (simplyfy DMR status display) did not consider
DMR duplex mode.

Now DMR simplex mode uses 2-lines style, duplex mode 4-lines like this.

	Listening
	TS1
	N Callsign
	TS2 TGxx

For this change, statusLine() no longer have meaning.
It will be removed in the future.
2020-02-29 06:51:26 +09:00
SASANO Takayoshi
ead41ba9a5 Simplify DMR status display
Old DMR status display takes 4 lines i.e.:

	1 Listening
	(unused line here)
	2 N Callsign
	TGxx

To make room for display area for future development, DMR status display
are changed to 2-lines style like this:

	N Callsign
	TS2 TGxx

And, added three small changes:

	- use statusLine() macro to change layout easily
	- use two -> three colors
		yellow: radio mode (DMR, YSF, etc)
		cyan: main status (callsign, TG/Timeslot)
		dark green: additional information (D* reflector etc) *NEW*
	- rename statusLine_offset() -> statusLineOffset()
2020-02-28 04:53:14 +09:00
Jonathan Naylor
b0fe8dc607
Merge pull request #557 from jg1uaa/master
TFTSurenoo: stability fix (workaround for display is not cleared)
2020-02-25 22:44:56 +00:00
SASANO Takayoshi
a117d70c56 send CR+LF (command terminator) first at refreshDisplay()
Sometimes BOXF (box fill) command at refreshDisplay() fails.
Normally this is not occured, but running MMDVMHost for long time
(about one day) we see this problem.

The reason is unknown. But if LCD panel receives garbage character between
calling refreshDisplay(), first command (BOXF) at latter-called
refresDdisplay() will fail.

For workaround, send CR+LF command terminator first at this function.
2020-02-24 17:52:30 +09:00
Jonathan Naylor
2a9d90b7c7
Merge pull request #555 from jg1uaa/master
Lookup name on DMR network late entry (2)
2020-02-17 11:56:34 +00:00
SASANO Takayoshi
45013ac179 Lookup name on DMR network late entry (2)
There is two cases that shows "received network late entry"

1. dataType == DT_VOICE_PI_HEADER && m_netState != RS_NET_AUDIO
2. dataType == DT_VOICE_SYNC && m_netState == RS_NET_IDLE

case 1 is already treated. this fix is for case 2.
2020-02-17 19:57:47 +09:00
SASANO Takayoshi
b86bc820e8 Merge remote-tracking branch 'upstream/master' 2020-02-17 07:02:02 +09:00
Jonathan Naylor
4450caeddc Update the copyright date. 2020-02-16 15:56:31 +00:00
Jonathan Naylor
fa08abfded Lookup name on DMR network late entry. 2020-02-16 15:52:42 +00:00
Jonathan Naylor
8b172f1221
Merge pull request #551 from jg1uaa/master
improve refreshing display
2020-02-16 15:45:01 +00:00
SASANO Takayoshi
88304997d4 Merge remote-tracking branch 'upstream/master' 2020-02-15 07:55:36 +09:00
Jonathan Naylor
d70a124f47 Update files to VS2019. 2020-02-14 20:53:21 +00:00
SASANO Takayoshi
60e82737b9 improve refreshing display
Display space character with DCV command to clear screen, but this command is
very slow. I tested filling whole 160x128 area with 8x16 character by DCV16
command, it took 540msec.

This is the worst case, but display refresh period has extended to 600ms
for safety.

To clear screen, use BOXF command instead. And, reduced issuing DCV command.
2020-01-18 06:29:49 +09:00
Jonathan Naylor
95c1bbb8e6
Merge pull request #550 from f1rmb/OPENGD77_HS
Identify OpenGD77 hotspot.
2020-01-10 11:28:47 +00:00
Daniel Caujolle-Bert
5686942519
Identify OpenGD77 hotspot. 2020-01-08 10:58:41 +01:00
Jonathan Naylor
3fa72d853d Fix compilation warnings. 2019-12-27 17:26:46 +00:00
Jonathan Naylor
a0ec58539a Remove duplication of frames. 2019-12-15 22:22:47 +00:00
Jonathan Naylor
3b7452feda Update for VS2017 2019-12-15 22:20:03 +00:00
Jonathan Naylor
0e78fafa91
Merge pull request #543 from jg1uaa/master
Add Surenoo UART-TFT panel (1.8inch, 128x160) support.
2019-12-08 21:44:04 +00:00
SASANO Takayoshi
be6f59ba5f fix copyright header
Add coder's name.

This code is forked from TFTSerial.cpp and TFTSerial.h
so original author's credit is kept.
2019-12-09 06:38:21 +09:00
Jonathan Naylor
ce5a212bd3
Merge pull request #542 from shawnchain/fix_emb_fec
Fix DMREMB FEC decode bug
2019-12-07 16:18:42 +00:00
Shawn Chain
ab226cec27 change variable type to unsigned char 2019-12-07 23:25:57 +08:00
Shawn Chain
31408d4a33 Fix DMREMB fec decode bug 2019-12-07 15:47:43 +08:00