Commit graph

2270 commits

Author SHA1 Message Date
SASANO Takayoshi
def0edbaca UDPSocket renewal (2)
introduced YSFClients code

	match_addr(addr1, addr2) -> match(addr1, addr2, IMT_ADDRESS_ONLY)
	isnone() -> isNone()
	open(sockaddr_storage&) added (this refers address family only)
2020-09-06 15:48:22 +09:00
SASANO Takayoshi
457be810a3 UDPSocket renewal
Currently there is six variations of (IPv4) UDPSocket.cpp.

- FMClients, NXDNClients, P25Clients, YSFClients(YSFParrot)
	use ::fprintf() for logging

- YSFClients(YSFReflector)
	use LogError() and LogInfo() for logging
	special open(string &bindaddr) function

- YSFClients(YSFGateway), DAPNETGateway
	use LogError() and LogInfo() for logging

- P25Clients, DMRGateway
	use LogError() for logging
	no LogInfo("Opening UDP port on") message

- NXDNClients
	use LogError() for logging
	no LogInfo("Opening UDP port on") message
	add #include <ifaddrs.h>

- MMDVMHost
	use LogError() for logging
	no LogInfo("Opening UDP port on") message
	no assert(!address.empty()) at constructor

to avoid explosion, commonized them.

	switch ::fprintf()/LogError by #define HAVE_LOG_H
	always display LogInfo("Opening UDP port on") message
	delete #include <ifaddrs.h>, this is not needed
	no assert(!address.empty()) at constructor

and to support YSFReflector, add multiple socket support.
default is #define UDP_SOCKET_MAX 1 so normally this feature is disabled.

added these functions.

	CUDPSocket()	(constructor without any parameters)
	open(index, af, addr, port)
	close(index)

CUDPSocket() means CUDPSocket(address = "", port = 0)
index selects socket, address and port is defined at open.

to have compatibility for old codes, these function works as

	CUDPSocket(addr, port)	store addr and port to index #0
	CUDPSocket(port)	store addr = "" and port to index #0
	open()		open with addr and port of index #0, AF_UNSPEC
	open(af)	open with addr and port of index #0, specified af
	close()		close *all* sockets

read/write operation is for all opened sockets.
2020-09-06 12:09:37 +09:00
Jonathan Naylor
3de54f6dd8 Merge branch 'ipv6' into SimpleDMR 2020-09-03 11:43:42 +01:00
Jonathan Naylor
132fb62d56 Small cleanups. 2020-08-30 14:54:51 +01:00
Jonathan Naylor
2349520964 Remove the location information from the new config message. 2020-08-27 10:13:02 +01:00
Jonathan Naylor
01da0ded7f Remove the unused SHA256 functions. 2020-08-27 09:00:49 +01:00
Jonathan Naylor
98879b5c14 Reinstated the location field. 2020-08-26 12:13:34 +01:00
Jonathan Naylor
a9c9ff6011 Changes for the simplified protocol. 2020-08-26 10:18:57 +01:00
Jonathan Naylor
66a17f4849 Simplify the Host to DMR Gateway protocol. 2020-08-26 09:29:11 +01:00
Jonathan Naylor
f71c8ce7bc
Merge pull request #633 from on7lds/dev
change tx and rx frequency display precision (to reflect ini file significant figures)
2020-08-14 09:33:53 +01:00
ON7LDS
70d596fea4 change tx and rx frequency display precision (to reflect ini file significant figures) 2020-08-13 21:23:42 +02:00
Jonathan Naylor
cdf62f1601
Merge pull request #630 from stefansaraev/oled-buildfix
OLED: fix build after f070410f7 and c7fbeecc5
2020-08-10 14:30:25 +01:00
Stefan Saraev
f48cfcc70c OLED: fix build after f070410f7 and c7fbeecc5
============================
Display.cpp: In static member function 'static CDisplay* CDisplay::createDisplay(const CConf&, CUMP*, CModem*)':
Display.cpp:645:128: error: invalid new-expression of abstract class type 'COLED'
  645 |   display = new COLED(type, brightness, invert, scroll, rotate, logosaver, conf.getDMRNetworkSlot1(), conf.getDMRNetworkSlot2());
      |                                                                                                                                ^
In file included from Display.cpp:39:
OLED.h:40:7: note:   because the following virtual functions are pure within 'COLED':
   40 | class COLED : public CDisplay
      |       ^~~~~
In file included from Display.cpp:19:
Display.h:105:15: note: 	'virtual void CDisplay::writeFusionInt(const char*, const char*, unsigned char, const char*, const char*)'
  105 |  virtual void writeFusionInt(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin) = 0;
============================
2020-08-10 16:26:07 +03:00
Sergei
1cc79413b7
Added a new address the id's list
A new address with the id's list format optimized for pistar as well. Extra spaces in the line were removed.
2020-08-10 15:36:12 +03:00
Jonathan Naylor
c7fbeecc50 Change the displays to show the DG-ID instead of the TO field for YSF. 2020-08-09 19:23:18 +01:00
Jonathan Naylor
f070410f7e Display and log the DG-ID in the Fusion mode. 2020-08-09 15:09:08 +01:00
Jonathan Naylor
b0d828123b
Merge pull request #624 from msraya/master
Remove DG-ID clear to zero in order to use DG-ID room switch in C4FM servers
2020-08-04 19:40:08 +01:00
msraya
ffd90f6941 Remove DG-ID clear to zero 2020-08-04 18:03:50 +01:00
Manuel Sánchez Raya
c21e325ddb
Merge pull request #1 from g4klx/master
Update fork to last version
2020-08-04 18:51:46 +02:00
Jonathan Naylor
c57a313677 Revert "YSF updated from msraya."
This reverts commit 7a1b71ecf5.
2020-08-04 10:34:18 +01:00
Jonathan Naylor
34c759df5f
Merge pull request #623 from msraya/master
Update files to remove DG-ID and maintain consistency in code
2020-08-03 20:22:41 +01:00
msraya
9ab838f653 Update files to remove DG-ID and maintain consistency in code 2020-08-03 19:56:08 +01:00
msraya
52ca12e88a Update files to remove DG-ID and mantain consistency in code 2020-08-03 19:48:25 +01:00
Jonathan Naylor
e01b153a86
Merge pull request #621 from msraya/patch-2
Do not remove DG-ID information for use in new servers
2020-08-03 19:14:20 +01:00
Manuel Sánchez Raya
01d8fe1a58
Do not remove DG-ID information for use in new servers
Please remove reset to zero or setting of DG-ID because is not necessary. 
There are many reflectors that use DG-ID to change communication between TGs or rooms.
2020-08-03 19:38:21 +02:00
Jonathan Naylor
34db212360
Merge pull request #617 from jg1uaa/ipv6
IPv6: catch up current source
2020-07-14 14:15:16 +01:00
Jonathan Naylor
3e6d5d5a7f Add UseCOSAsLockout and FM Access Mode parameters. 2020-07-13 16:02:04 +01:00
SASANO Takayoshi
c40291dcc2 Merge remote-tracking branch 'upstream/master' into ipv6 2020-07-04 18:48:13 +09:00
Jonathan Naylor
16fac0b41c
Merge pull request #616 from jg1uaa/master
permit inline comment (2)
2020-07-04 10:45:25 +01:00
SASANO Takayoshi
1ded19c5b2 permit inline comment (2)
To implement this feature, using strtok() is not enough.

This cannot handle this case:

	Key=#value#comment

it will be #value is the contents of Key. And,

	Key=value 	#comment
	(there is a space and a tab between value and #comment)

this will be value<space><tab>. Sometimes these trailing spaces and
tabs makes thing wrong.

Whether in-line comment is used or not, delete trailing space/tab after
value.
2020-07-04 17:58:00 +09:00
SASANO Takayoshi
9137399ea9 NXDNKenwoodNetwork: IPv6 support 2020-07-03 06:56:36 +09:00
SASANO Takayoshi
8a0db8cb8b NXDNIcomNetwork: IPv6 support 2020-07-03 04:40:41 +09:00
SASANO Takayoshi
6de0bdb536 add match_addr()
match() compares IP address and port
match_addr() compares IP address only
2020-07-03 04:35:22 +09:00
SASANO Takayoshi
74adbd4895 Merge remote-tracking branch 'upstream/master' into ipv6
simply merged upstream code.

following files are conflicted, all fixed
GPSD.h, MobileGPS.cpp, NXDNNetwork.cpp, NXDNNetwork.h, UDPSocket.h

NXDNIcomNetwork and NXDNKenwoodNetwork is still original code,
not support IPv6-UDPSocket yet.
2020-07-03 04:17:14 +09:00
Jonathan Naylor
5dcdfd8159
Merge pull request #615 from jg1uaa/master
permit inline comment and hex-value to ScreenLayout of Nextion
2020-07-02 13:20:20 +01:00
SASANO Takayoshi
15a8e87c3e permit inline comment and ScreenLayout of Nextion
two minor improvements

- ScreenLayout in Nextion section can use hexadecimal (0xXXXXX),
  octal (0XXXX) and decimal value
- in-line comment enabled

	example:
	# conventional comment, the line starts with #
	[Section]
	Key=value # this is new style comment
	Key="quoted value # this is not comment"
	Key="quoted value" # this is prohibited (not comment)
2020-07-02 18:47:33 +09:00
SASANO Takayoshi
c8e31ce657 Merge remote-tracking branch 'upstream/master' 2020-07-02 18:23:10 +09:00
SASANO Takayoshi
4217ccebc4 remove getLocalAddress()
It was used for NXDNKenwoodNetwork.cpp to creates SSRC.
currently SSRC uses random value, this function is no longer used.
2020-07-02 06:59:51 +09:00
Jonathan Naylor
ee2e997cfd
Merge pull request #613 from jg1uaa/master
replace rand() -> MT19937 random number generator
2020-07-01 22:55:27 +01:00
SASANO Takayoshi
dfaedb450b replace rand() -> MT19937 random number generator
sometimes rand() makes problem so replace it to MT19937 in C++11 <random>.
2020-07-02 06:40:26 +09:00
Jonathan Naylor
4dd39696b4 Remove unused UDPSocket code. 2020-07-01 13:38:23 +01:00
Jonathan Naylor
8edfc62049
Merge pull request #612 from jg1uaa/master
m_ssrc use random value
2020-07-01 13:16:52 +01:00
SASANO Takayoshi
0892aaaaae eliminate SSRC range 0x00000001 - 0xfffffffe 2020-07-01 20:39:22 +09:00
SASANO Takayoshi
79b3eaa57a replace SSRC source from IPv4 address to random number
Previous implementation uses SSRC as IPv4 address that is same behaviour
of Kenwood's NXDN repeater.

RFC 3350 RTP protocol recommends SSRC uses random number.
So I use MT19937 random number generator instead of IP address.

And if this is no problem, I will do two changes.

- replace rand() in DMRNetwork.cpp and DStarNetwork.cpp to MT19937
- remove getLocalAddress() in UDPSocket.cpp
2020-07-01 19:48:07 +09:00
SASANO Takayoshi
974251485d Merge remote-tracking branch 'upstream/master' 2020-06-30 19:41:27 +09:00
SASANO Takayoshi
236d467c1a change ScreenLayout definition for Nextion
to add new feature easily, the definition of ScreenLayout in [Nextion]
has changed like this.

ScreenLayout < 8: compatibile setting for old config file

	0: G4KLX @ 9600bps
	1: (reserved)
	2: ON7LDS @ 9600bps
	3: ON7LDS-DIY @ 9600bps
	4: ON7LDS-DIY @ 115200bps

ScreenLayout >= 8: new world, set the bit to enable each feature

	bit3 (8)	use 115200bps
	bit4 (16)	Display DMR Talker Alias
	bit5 (32)	Colour change when displaying TA
	bit6 (64)	Font size change when displaying long TA text
	bit7 (128)	Display DIY status when MMDVM IDLE

old settings are same as:

	0 -> 0
	2 -> 112 (16+32+64)
	3 -> 144 (16+128)
	4 -> 152 (8+16+128)
2020-06-30 19:40:34 +09:00
Jonathan Naylor
df47466aa2 Use USE_GPSD instead of USE_GPS. 2020-06-30 11:38:25 +01:00
Jonathan Naylor
be8c29da3e Fix Windows compilation. 2020-06-29 11:50:33 +01:00
Jonathan Naylor
edce667018 Replace MobileGPS with gpsd. 2020-06-29 11:25:10 +01:00
Jonathan Naylor
1dc91b9a64 Add the install target to the other makefiles. 2020-06-25 09:55:28 +01:00