ca35121b44
Add variables for TX Freq (t30), RX Freq (t32), CPU Temp (t20), and Location (t31) to Base MMDVM page. These variables are available with Layout ON7LDS L3 or higher. This allows more dynamic info to be displayed without having to use the optional NextionDriver. Note, this doesn't add touch support. For that, use the NextionDriver. Fixed command mangling occuring during serial writes to Nextion due to no ready-state monitoring of display readiness. Added simple thread sleep to pace the commands as they are sent. Allows the display a chance to process the command before another one is blasted in. Prevents mangling of commands sent before display is ready to accept them. Hardwired to 10 msec--let's see if that's enough. Added setting in mmdvm conf file, Section: [Nextion] Setting: DisplayTempInFahrenheit Value= 0 (default) for C. 1=Fahrenheit This controls the value sent to t20.
229 lines
5.5 KiB
Text
229 lines
5.5 KiB
Text
Nextion Display Layouts by ON7LDS (for MMDVMHost)
|
|
=================================================
|
|
|
|
####################################
|
|
# #
|
|
# screenLayout 3 & 4 files (-L3) #
|
|
# #
|
|
# ON7LDS DIY layouts #
|
|
# #
|
|
####################################
|
|
|
|
The screenlayout has to be selected with the parameter ScreenLayout in the
|
|
MMDVM.ini file under the Nextion section. This way, the extra functions
|
|
are activated.
|
|
0 = auto (future use, for now it's G4KLX layout)
|
|
1 = G4KLX layout
|
|
2 = ON7LDS layout (see README-L2)
|
|
3 = ON7LDS DIY layout (this README file)
|
|
4 = ON7LDS DIY layout High Speed (this README file)
|
|
|
|
screenLayout 3 and 4 are the same, but selecting 3, MMDVMHost will communicate
|
|
at 9600bps with the display and selecting 4 will set the baudrate to 115200.
|
|
If you select 4 (115200bps) *you* have to program your Nextion to default to
|
|
that baudrate.
|
|
|
|
How to set the default Nextion Display baudrate ?
|
|
You could use the Nextion editor, connect to your display with the debug
|
|
tool (do not forget to select your display and not the simulator) and
|
|
give the command 'bauds=115200'.
|
|
Another option is to set the command above in the Preinitialization Event
|
|
of the first page. Nextion recommends to do the latter in any case,
|
|
because 'on rare occasions bauds has become lost'
|
|
|
|
|
|
ON7LDS DIY layouts
|
|
------------------
|
|
When selecting this layout, all processing can and should be done in the
|
|
Nextion display itself.
|
|
Whenever MMDVMHost sends new data to the screen, it also sends information
|
|
about what was sent as a number in global variable MMDVM.status.
|
|
(see further in this document for a table of numbers and their events)
|
|
|
|
Then MMDVMHost activates the Touch Press Event of object 'S0' of the
|
|
active page.
|
|
In this event procedure, all processing can be done.
|
|
|
|
Check the Touch Press Event of object 'S0' of the DMR page of the example
|
|
HMI file. As a straightforward example, the code there will show you how
|
|
to do some tasks when receiving data from MMDVMHost or NextionDriver:
|
|
- change colors and fonts of the TA on the DMR page when it arrives.
|
|
(TA length calculation is done in the display itself !)
|
|
- remove the slot number from t2.txt (since it's always 2)
|
|
- in the middle of the DMR screen, the previous user is displayed
|
|
for each slot (S1 at the left, S2 at the right)
|
|
This is done by copying the data from the ID/TA field to these
|
|
fields at call end.
|
|
|
|
The examples are there to give you an idea of what can be done.
|
|
It is up to your imagination to go even further.
|
|
When, for example, you want to change the text 'listening' to some
|
|
other text, like 'RX', you just have to monitor the event status and
|
|
take action in the Touch Event of S0 of the corresponding page.
|
|
Or you could hide/show pictures, switch to other pages, etc.
|
|
|
|
Check the NextionDriver program and the display layouts there to see
|
|
some other examples of what can be done by programming in the
|
|
display. (https://github.com/on7lds/NextionDriver)
|
|
|
|
|
|
NOTE: it might be good to *not* remove fields from the display when you do not
|
|
need them, but make them small (i.e. 10 x 10 pixels) and put them aside:
|
|
Give them the same font colour and background colour as where you put them
|
|
OR
|
|
Put them behind some picture: put them on top of the picture, then select the
|
|
picture and click the 'Bring Top' button to put it on top of all those fields
|
|
OR
|
|
set them invisible when the page is selected (with the 'vis' command) in the
|
|
preinitialize event of the page
|
|
|
|
This way, you can use the data from the fields to process them
|
|
as is done with the GPS data in the example.
|
|
|
|
|
|
|
|
|
|
Status codes that will be sent:
|
|
-------------------------------
|
|
The status code gives more information about what was sent in the
|
|
changed field.
|
|
|
|
1 : page MMDVM
|
|
2 : page D-Star
|
|
3 : page DMR
|
|
4 : page YSF
|
|
5 : page P25
|
|
6 : page NXDN
|
|
7 : page POCSAG
|
|
|
|
11 : IDLE
|
|
12 : CW
|
|
13 : ERROR text
|
|
14 : ERROR
|
|
15 : LOCKOUT
|
|
16 : IPaddress
|
|
17 : ID/Call (t0 and t4,t5 are sent)
|
|
19 : END
|
|
20 : RX Frequency
|
|
21 : TX Frequency
|
|
22 : Temperature
|
|
23 : Location
|
|
|
|
41 : D-Star listening
|
|
42 : type/my1/my2
|
|
45 : your
|
|
46 : reflector
|
|
47 : RSSI
|
|
48 : ber
|
|
|
|
61 : DMR listening1
|
|
62 : ID1
|
|
63 : TA1
|
|
64 : Call end1
|
|
65 : TG1
|
|
66 : RSSI1
|
|
67 : ber1
|
|
69 : DMR listening2
|
|
70 : ID2
|
|
71 : TA2
|
|
72 : Call end2
|
|
73 : TG2
|
|
74 : RSSI2
|
|
75 : ber2
|
|
76 : GPS1 (t8,t9,t12)
|
|
77 : GPS2 (t10,t11,t13)
|
|
|
|
81 : YSF listening
|
|
82 : src
|
|
83 : dest
|
|
84 : origin
|
|
85 : RSSI
|
|
86 : ber
|
|
|
|
101 : P25 listening
|
|
102 : source
|
|
103 : dest
|
|
104 : RSSI
|
|
105 : ber
|
|
|
|
121 : NXDN listening
|
|
122 : source
|
|
123 : dest
|
|
124 : RSSI
|
|
125 : ber
|
|
|
|
132 : RIC
|
|
133 : message text
|
|
134 : waiting
|
|
|
|
|
|
Fields (and their numbers) on the pages, used by MMDVMHost
|
|
----------------------------------------------------------
|
|
|
|
MMDVM
|
|
t0 : owner call & ID / errortext LOCKOUT
|
|
t1 : status / ERROR
|
|
t2 : date & time
|
|
|
|
|
|
screenLayout >2 :
|
|
t3 : ip address
|
|
t4 : owner call
|
|
t5 : owner ID
|
|
t20 : CPU Temperature in C. ( Can be changed to F in mmdmvhost config setting: [NEXTION] Section, Setting=DisplayTempInFahrenheit=1)
|
|
t30 : RX Frequency
|
|
t31 : Location
|
|
t32 : TX Frequency
|
|
|
|
|
|
D-Star
|
|
t0 : type my1 my2
|
|
t1 : your
|
|
t2 : reflector
|
|
t3 : rssi
|
|
t4 : ber
|
|
|
|
|
|
DMR
|
|
t0 : src1 id / call / TA
|
|
t1 : dst
|
|
t2 : src2 id / call / TA
|
|
t3 : dst
|
|
t4 : rssi1
|
|
t5 : rssi2
|
|
t6 : ber1
|
|
t7 : ber2
|
|
|
|
screenLayout >2 :
|
|
t8 : GPS1 dec
|
|
t9 : GPS1 DMS
|
|
t10: GPS2 dec
|
|
t11: GPS2 DMS
|
|
t12: GPS1 err
|
|
t13: GPS2 err
|
|
|
|
|
|
YSF
|
|
t0 : type,source
|
|
t1 : dst
|
|
t2 : src
|
|
t3 : rssi
|
|
t4 : ber
|
|
|
|
|
|
P25
|
|
t0 : type,source
|
|
t1 : dst
|
|
t2 : rssi
|
|
t3 : ber
|
|
|
|
|
|
NXDN
|
|
t0 : type,source
|
|
t1 : dst
|
|
t2 : rssi
|
|
t3 : ber
|
|
|
|
POCSAG
|
|
t0 : waiting / RIC
|
|
t1 : message
|