Compare commits
4 commits
Author | SHA1 | Date | |
---|---|---|---|
|
f4d67fe4b5 | ||
4b22bac81b | |||
94e260caa3 | |||
|
946ae33596 |
19 changed files with 623 additions and 5 deletions
24/LastHeard-Dashboard-Multislot
70/LastHeard-Dashboard-Multislot-Enhanced
README.mdcode_excerpts
|
@ -10,7 +10,7 @@ or my website [oe7drt.com](https://oe7drt.com) is well appreciated.
|
||||||
|
|
||||||
[I made a blog post][blog post] about this screen.
|
[I made a blog post][blog post] about this screen.
|
||||||
|
|
||||||
[blog post]: https://oe7drt.com/blog/nextion-dmr-last-heard-dashboard/
|
[blog post]: https://oe7drt.com/posts/2020-02-16-nextion-dmr-last-heard-dashboard/
|
||||||
|
|
||||||
# Preview
|
# Preview
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -13,7 +13,7 @@ or my website [oe7drt.com](https://oe7drt.com) is well appreciated.
|
||||||
|
|
||||||
[I made a blog post][blog post] about this screen.
|
[I made a blog post][blog post] about this screen.
|
||||||
|
|
||||||
[blog post]: https://oe7drt.com/blog/my-7inch-dmr-dashboard/
|
[blog post]: https://oe7drt.com/posts/2020-02-16-nextion-dmr-last-heard-dashboard/
|
||||||
|
|
||||||
# Preview
|
# Preview
|
||||||
|
|
||||||
|
|
72
70/LastHeard-Dashboard-Multislot-Enhanced/linux/README.md
Normal file
72
70/LastHeard-Dashboard-Multislot-Enhanced/linux/README.md
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
# Useful files to keep on your Raspberry Pi
|
||||||
|
|
||||||
|
Use these files as examples and modify them to fit your needs.
|
||||||
|
|
||||||
|
Place the executable files in `/usr/local/sbin` and save `index.txt` as
|
||||||
|
`/root/index.html`.
|
||||||
|
|
||||||
|
## index.txt
|
||||||
|
|
||||||
|
This file contains the website that is shown when you stop the dashboard. It gets
|
||||||
|
copied into the webroot of your webserver -- make sure your webserver reads
|
||||||
|
`index.html` files **before** `index.php` files.
|
||||||
|
|
||||||
|
## dashboard
|
||||||
|
|
||||||
|
Executable file. Make sure to `chmod +x` this file.
|
||||||
|
|
||||||
|
Start or stop the dashboard with this command. This toggles the systemd service
|
||||||
|
|
||||||
|
- php7.3-fpm.service
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
```
|
||||||
|
/usr/local/sbin/dashboard {on|off}
|
||||||
|
```
|
||||||
|
|
||||||
|
## hotspot
|
||||||
|
|
||||||
|
Executable file. Make sure to `chmod +x` this file.
|
||||||
|
|
||||||
|
Start or stop your hotspot. This toggles the systemd services
|
||||||
|
|
||||||
|
- mmdvmhost.timer
|
||||||
|
- mmdvmhost.service
|
||||||
|
|
||||||
|
Additionally it starts or stops the dashboard command mentioned above.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
```
|
||||||
|
/usr/local/sbin/hotspot {on|off}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Start and stop the hotspot via Cron
|
||||||
|
|
||||||
|
Place these lines in your `/etc/crontab` to automatically start and/or stop
|
||||||
|
your hotspot.
|
||||||
|
|
||||||
|
```
|
||||||
|
30 6 * * 1-5 root /usr/local/sbin/hotspot off
|
||||||
|
0 18 * * 1-5 root /usr/local/sbin/hotspot on
|
||||||
|
```
|
||||||
|
|
||||||
|
That might stop the hotspot at 6:30 and start it again at 18:00, Monday to Friday.
|
||||||
|
|
||||||
|
## shrinklog
|
||||||
|
|
||||||
|
Executable file. Make sure to `chmod +x` this file.
|
||||||
|
|
||||||
|
This command shrinks the MMDVMHost log file to a limited number of important
|
||||||
|
lines.
|
||||||
|
|
||||||
|
The code of this was primarily taken from [Pi-Star][shrinklog] and modified.
|
||||||
|
|
||||||
|
[shrinklog]: https://github.com/AndyTaylorTweet/Pi-Star_Binaries_sbin/blob/master/pistar-hourly.cron
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
```
|
||||||
|
/usr/local/sbin/shrinklog
|
||||||
|
```
|
26
70/LastHeard-Dashboard-Multislot-Enhanced/linux/dashboard
Normal file
26
70/LastHeard-Dashboard-Multislot-Enhanced/linux/dashboard
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$EUID" -ne 0 ]
|
||||||
|
then echo "root privileges needed. Aborting."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start|on)
|
||||||
|
echo -n "Starting the web dashboard..."
|
||||||
|
systemctl start php7.3-fpm.service
|
||||||
|
rm -f /var/www/html/index.html
|
||||||
|
echo " OK"
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop|off)
|
||||||
|
echo -n "Stopping the web dashboard..."
|
||||||
|
cp -a /root/index.html /var/www/html/index.html
|
||||||
|
systemctl stop php7.3-fpm.service
|
||||||
|
echo " OK"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo $"Usage: $0 {start|stop}"
|
||||||
|
exit 1
|
||||||
|
esac
|
27
70/LastHeard-Dashboard-Multislot-Enhanced/linux/hotspot
Normal file
27
70/LastHeard-Dashboard-Multislot-Enhanced/linux/hotspot
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$EUID" -ne 0 ]
|
||||||
|
then echo "root privileges needed. Aborting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
on)
|
||||||
|
systemctl start mmdvmhost.timer
|
||||||
|
systemctl start mmdvmhost.service
|
||||||
|
/usr/local/sbin/dashboard on
|
||||||
|
;;
|
||||||
|
|
||||||
|
off)
|
||||||
|
systemctl stop mmdvmhost.timer
|
||||||
|
systemctl stop mmdvmhost.service
|
||||||
|
/usr/local/sbin/dashboard off
|
||||||
|
;;
|
||||||
|
help)
|
||||||
|
echo "$(basename $0)"
|
||||||
|
echo " Enable or disable systemd services for MMDVMHost"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "usage: $(basename $0) [ on | off ]"
|
||||||
|
exit 1
|
||||||
|
esac
|
35
70/LastHeard-Dashboard-Multislot-Enhanced/linux/index.txt
Normal file
35
70/LastHeard-Dashboard-Multislot-Enhanced/linux/index.txt
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<!DOCTYPE html><html lang="de_AT">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name='HandheldFriendly' content='True'>
|
||||||
|
<meta name='MobileOptimized' content='320'>
|
||||||
|
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1'>
|
||||||
|
|
||||||
|
<title>OE7DRT - MMDVM-Dashboard by DG9VH</title>
|
||||||
|
<style>
|
||||||
|
.center {
|
||||||
|
font-family: Input, Monospace, fixed;
|
||||||
|
font-size: 110%;
|
||||||
|
height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
@media only screen
|
||||||
|
and (max-width : 500px) {
|
||||||
|
.center {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="center">
|
||||||
|
<p>The dashboard is not available right now, please try
|
||||||
|
again later!<br><br>
|
||||||
|
<a href="#" onclick="location.reload(true);
|
||||||
|
return false;">reload this page</a>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
26
70/LastHeard-Dashboard-Multislot-Enhanced/linux/shrinklog
Normal file
26
70/LastHeard-Dashboard-Multislot-Enhanced/linux/shrinklog
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# This code was taken from Pi-Star (and maybe modified a bit)
|
||||||
|
# https://github.com/AndyTaylorTweet/Pi-Star_Binaries_sbin/blob/master/pistar-hourly.cron
|
||||||
|
|
||||||
|
echo -n "Shrinking MMDVM log..."
|
||||||
|
# Shrink the MMDVMHost Log
|
||||||
|
MMDVMLogFiles=$(ls /var/log/mmdvm/MMDVM-*.log 2> /dev/null | wc -l)
|
||||||
|
if [[ "$MMDVMLogFiles" != "0" ]]; then
|
||||||
|
todayMMDVMLog=$(ls -1rt /var/log/mmdvm/MMDVM-*.log | tail -n1)
|
||||||
|
modemLine=$(grep "MMDVM protocol version" ${todayMMDVMLog} | tail -n 1)
|
||||||
|
if [ "$(head -n 1 ${todayMMDVMLog})" = "${modemLine}" ]; then
|
||||||
|
sed -i '1d' ${todayMMDVMLog}
|
||||||
|
fi
|
||||||
|
echo -e "${modemLine}\n$(egrep -h "from|end|watchdog|lost|protocol" ${todayMMDVMLog} | sed '/(CSBK|overflow|mapping points|Downlink)/d' | tail -n 500)" > ${todayMMDVMLog}
|
||||||
|
#echo -e "${modemLine}\n$(egrep -h "from|end|watchdog|lost|protocol" ${todayMMDVMLog} | sed '/(CSBK|overflow|mapping points|Downlink)/d' | tail -n 1000)" > ${todayMMDVMLog}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n " /var/log..."
|
||||||
|
# Clean up systemd logs
|
||||||
|
journalctl --rotate > /dev/null 2>&1
|
||||||
|
#journalctl --vacuum-time=24h
|
||||||
|
#journalctl --vacuum-size=5M
|
||||||
|
journalctl --vacuum-time=6h > /dev/null 2>&1
|
||||||
|
journalctl --vacuum-size=2M > /dev/null 2>&1
|
||||||
|
|
||||||
|
echo " OK"
|
Binary file not shown.
Before ![]() (image error) Size: 70 KiB After ![]() (image error) Size: 55 KiB ![]() ![]() |
26
README.md
26
README.md
|
@ -5,7 +5,12 @@ This is a collection of Nextion Screen Layouts that I have made.
|
||||||
The bigger screens usually run with a higher baudrate of 115200. With 9600
|
The bigger screens usually run with a higher baudrate of 115200. With 9600
|
||||||
the screen may flicker a little bit.
|
the screen may flicker a little bit.
|
||||||
|
|
||||||
## Files in this repo (2020-03-20)
|
~~## Files in this repo (2020-04-27)~~
|
||||||
|
|
||||||
|
## Files in this repo (2023-01-12)
|
||||||
|
|
||||||
|
As I updated the repo with some excerpts of code that is used within
|
||||||
|
those files.
|
||||||
|
|
||||||
```
|
```
|
||||||
MMDVM-Nextion-Screen-Layouts
|
MMDVM-Nextion-Screen-Layouts
|
||||||
|
@ -18,10 +23,25 @@ MMDVM-Nextion-Screen-Layouts
|
||||||
│ └── screens.png
|
│ └── screens.png
|
||||||
├── 70
|
├── 70
|
||||||
│ └── LastHeard-Dashboard-Multislot-Enhanced
|
│ └── LastHeard-Dashboard-Multislot-Enhanced
|
||||||
|
│ ├── linux
|
||||||
|
│ │ ├── dashboard
|
||||||
|
│ │ ├── hotspot
|
||||||
|
│ │ ├── index.txt
|
||||||
|
│ │ ├── README.md
|
||||||
|
│ │ └── shrinklog
|
||||||
│ ├── Multi-LH-DMR-NX8048K070_011.HMI
|
│ ├── Multi-LH-DMR-NX8048K070_011.HMI
|
||||||
│ ├── Multi-LH-DMR-NX8048K070_011.tft
|
│ ├── Multi-LH-DMR-NX8048K070_011.tft
|
||||||
│ ├── README.md
|
│ ├── nxt07_01.png
|
||||||
│ └── nxt07_screens.png
|
│ └── README.md
|
||||||
|
├── code_excerpts
|
||||||
|
│ ├── 24_S0.txt
|
||||||
|
│ ├── 70_DMR_PostInit.txt
|
||||||
|
│ ├── 70_MMDVM_PreInit.txt
|
||||||
|
│ ├── 70_S0.txt
|
||||||
|
│ ├── 70_SYSTEM_PreInit.txt
|
||||||
|
│ ├── 70_tm0.txt
|
||||||
|
│ ├── info.txt
|
||||||
|
│ └── README.md
|
||||||
├── LICENSE
|
├── LICENSE
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
|
|
61
code_excerpts/24_S0.txt
Normal file
61
code_excerpts/24_S0.txt
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
st.val=MMDVM.status.val
|
||||||
|
if(MMDVM.status.val>60)
|
||||||
|
{
|
||||||
|
if(MMDVM.status.val<69)
|
||||||
|
{
|
||||||
|
// SLOT 1
|
||||||
|
if(MMDVM.status.val==64)
|
||||||
|
{
|
||||||
|
lst.txt="TS1: "
|
||||||
|
substr t0.txt,tmp2.txt,4,27
|
||||||
|
lst.txt+=tmp2.txt
|
||||||
|
// Call END SLOT 1
|
||||||
|
if(now.txt!=t0.txt)
|
||||||
|
{
|
||||||
|
// for now we use the full src information
|
||||||
|
// with Slot and RF/NET information
|
||||||
|
lh5.txt=lh4.txt
|
||||||
|
tg5.txt=tg4.txt
|
||||||
|
lh4.txt=lh3.txt
|
||||||
|
tg4.txt=tg3.txt
|
||||||
|
lh3.txt=lh2.txt
|
||||||
|
tg3.txt=tg2.txt
|
||||||
|
lh2.txt=lh1.txt
|
||||||
|
tg2.txt=tg1.txt
|
||||||
|
lh1.txt=now.txt
|
||||||
|
tg1.txt=tg.txt
|
||||||
|
now.txt=t0.txt
|
||||||
|
tg.txt=t1.txt
|
||||||
|
//substr t0.txt,now.txt,4,100
|
||||||
|
lst.txt=""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else if(MMDVM.status.val<78)
|
||||||
|
{
|
||||||
|
// SLOT 2
|
||||||
|
if(MMDVM.status.val==72)
|
||||||
|
{
|
||||||
|
lst.txt="TS2: "
|
||||||
|
substr t2.txt,tmp2.txt,4,27
|
||||||
|
lst.txt+=tmp2.txt
|
||||||
|
// Call END SLOT 2
|
||||||
|
if(now.txt!=t2.txt)
|
||||||
|
{
|
||||||
|
lh5.txt=lh4.txt
|
||||||
|
tg5.txt=tg4.txt
|
||||||
|
lh4.txt=lh3.txt
|
||||||
|
tg4.txt=tg3.txt
|
||||||
|
lh3.txt=lh2.txt
|
||||||
|
tg3.txt=tg2.txt
|
||||||
|
lh2.txt=lh1.txt
|
||||||
|
tg2.txt=tg1.txt
|
||||||
|
lh1.txt=now.txt
|
||||||
|
tg1.txt=tg.txt
|
||||||
|
now.txt=t2.txt
|
||||||
|
tg.txt=t3.txt
|
||||||
|
//substr t2.txt,now.txt,4,100
|
||||||
|
lst.txt=""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
50
code_excerpts/70_DMR_PostInit.txt
Normal file
50
code_excerpts/70_DMR_PostInit.txt
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
// The following is going to execute after we load this current page:
|
||||||
|
//
|
||||||
|
// There is something strange when I read the RTC for the first time
|
||||||
|
// without a battery, or when you just inserted a battery for the first time.
|
||||||
|
// Some of the values are random generated and beyond the limits. For example, the
|
||||||
|
// day would show as 45, month as 20, minute as 65, etc. I was like: "What?!!!"
|
||||||
|
// And we can't modify them using normal buttons because they are coded to
|
||||||
|
// take to current value and increase or decrease that value, and the RTC
|
||||||
|
// don't take values beyond the limits. For that reason I am going to check
|
||||||
|
// if any of the components of the RTC are beyond the limits, and if they are
|
||||||
|
// I will take them to a valid value:
|
||||||
|
// This must run on "Postinitialize Event" on page 0.
|
||||||
|
if(rtc0>2099) // if year is above 2099
|
||||||
|
{
|
||||||
|
rtc0=2099 // set year as 2099
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if(rtc1>12) // if month is above 12
|
||||||
|
{
|
||||||
|
rtc1=12 // set month as 12
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if(rtc1==0) // if month is equal to 0
|
||||||
|
{
|
||||||
|
rtc1=1 // set month as 1
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if(rtc2>31) // if day is above 31
|
||||||
|
{
|
||||||
|
rtc2=1 // set day as 1
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if(rtc2==0) // if day is equal to 0
|
||||||
|
{
|
||||||
|
rtc2=1 // set day as 1
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if(rtc3>23) // if hour is above 23
|
||||||
|
{
|
||||||
|
rtc3=23 // set hour as 23
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if(rtc4>59) // if minute is above 59
|
||||||
|
{
|
||||||
|
rtc4=0 // set minute as 0
|
||||||
|
}
|
||||||
|
if(rtc5>59) // if second is above 59
|
||||||
|
{
|
||||||
|
rtc5=59 // set second as 59
|
||||||
|
}
|
6
code_excerpts/70_MMDVM_PreInit.txt
Normal file
6
code_excerpts/70_MMDVM_PreInit.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
bauds=115200
|
||||||
|
//bauds=9600
|
||||||
|
// get and set brightness
|
||||||
|
repo SYSTEM.va0.val,10
|
||||||
|
dim=SYSTEM.va0.val
|
||||||
|
page DMR
|
170
code_excerpts/70_S0.txt
Normal file
170
code_excerpts/70_S0.txt
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
st.val=MMDVM.status.val
|
||||||
|
// MMDVM Stuff
|
||||||
|
if(MMDVM.status.val>60)
|
||||||
|
{
|
||||||
|
if(MMDVM.status.val<69)
|
||||||
|
{
|
||||||
|
// SLOT 1
|
||||||
|
if(enabled1.val==0)
|
||||||
|
{
|
||||||
|
if(MMDVM.status.val==62)
|
||||||
|
{
|
||||||
|
slot1t.val=0
|
||||||
|
tm1.en=1
|
||||||
|
enabled1.val=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(MMDVM.status.val==64)
|
||||||
|
{
|
||||||
|
// Call END SLOT 1
|
||||||
|
tm1.en=0
|
||||||
|
enabled1.val=0
|
||||||
|
substr t0.txt,tmp2.txt,4,100
|
||||||
|
if(now.txt!=tmp2.txt)
|
||||||
|
{
|
||||||
|
// copy line 3 to 4
|
||||||
|
lh4.txt=lh3.txt
|
||||||
|
ber4.txt=ber3.txt
|
||||||
|
rssi4.txt=rssi3.txt
|
||||||
|
time4.txt=time3.txt
|
||||||
|
p4.txt=p3.txt
|
||||||
|
tg4.txt=tg3.txt
|
||||||
|
// copy line 2 to 3
|
||||||
|
lh3.txt=lh2.txt
|
||||||
|
ber3.txt=ber2.txt
|
||||||
|
rssi3.txt=rssi2.txt
|
||||||
|
time3.txt=time2.txt
|
||||||
|
p3.txt=p2.txt
|
||||||
|
tg3.txt=tg2.txt
|
||||||
|
// copy line 1 to 2
|
||||||
|
lh2.txt=lh1.txt
|
||||||
|
ber2.txt=ber1.txt
|
||||||
|
rssi2.txt=rssi1.txt
|
||||||
|
time2.txt=time1.txt
|
||||||
|
p2.txt=p1.txt
|
||||||
|
tg2.txt=tg1.txt
|
||||||
|
// copy line 0 to 1
|
||||||
|
lh1.txt=now.txt
|
||||||
|
ber1.txt=ber.txt
|
||||||
|
rssi1.txt=rssi.txt
|
||||||
|
time1.txt=time0.txt
|
||||||
|
p1.txt=p0.txt
|
||||||
|
tg1.txt=tg.txt
|
||||||
|
// get line 0 from MMDVMHost
|
||||||
|
substr t0.txt,now.txt,4,100
|
||||||
|
ber.txt=t6.txt
|
||||||
|
rssi.txt=t4.txt
|
||||||
|
// Uhrzeit Minuten
|
||||||
|
time0.txt=""
|
||||||
|
covx rtc3,va5.txt,2,0
|
||||||
|
time0.txt+=va5.txt
|
||||||
|
time0.txt+=":"
|
||||||
|
// Sekunden
|
||||||
|
covx rtc4,va7.txt,2,0
|
||||||
|
time0.txt+=va7.txt
|
||||||
|
// Durchgang SECONDS p0.txt
|
||||||
|
sec_rest.val=slot1t.val
|
||||||
|
sec_rest.val%=20
|
||||||
|
sec.val=slot1t.val
|
||||||
|
sec.val/=20
|
||||||
|
// Rest in Dezimalstellen rechnen
|
||||||
|
sec_rest.val*=5
|
||||||
|
p0.txt=""
|
||||||
|
covx sec.val,p0.txt,0,0
|
||||||
|
p0.txt+="."
|
||||||
|
covx sec_rest.val,sec_tmp.txt,0,0
|
||||||
|
substr sec_tmp.txt,sec_tmp2.txt,0,1
|
||||||
|
p0.txt+=sec_tmp2.txt
|
||||||
|
p0.txt+="s"
|
||||||
|
slot1t.val=0
|
||||||
|
substr t0.txt,tg.txt,0,1
|
||||||
|
tg.txt+="-"
|
||||||
|
tg.txt+=t1.txt
|
||||||
|
t4.txt=""
|
||||||
|
t6.txt=""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else if(MMDVM.status.val<78)
|
||||||
|
{
|
||||||
|
// SLOT 2
|
||||||
|
if(enabled2.val==0)
|
||||||
|
{
|
||||||
|
if(MMDVM.status.val==70)
|
||||||
|
{
|
||||||
|
slot2t.val=0
|
||||||
|
tm2.en=1
|
||||||
|
enabled2.val=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(MMDVM.status.val==72)
|
||||||
|
{
|
||||||
|
// Call END SLOT 2
|
||||||
|
tm2.en=0
|
||||||
|
enabled2.val=0
|
||||||
|
substr t2.txt,tmp2.txt,4,100
|
||||||
|
if(now.txt!=tmp2.txt)
|
||||||
|
{
|
||||||
|
// copy line 3 to 4
|
||||||
|
lh4.txt=lh3.txt
|
||||||
|
ber4.txt=ber3.txt
|
||||||
|
rssi4.txt=rssi3.txt
|
||||||
|
time4.txt=time3.txt
|
||||||
|
p4.txt=p3.txt
|
||||||
|
tg4.txt=tg3.txt
|
||||||
|
// copy line 2 to 3
|
||||||
|
lh3.txt=lh2.txt
|
||||||
|
ber3.txt=ber2.txt
|
||||||
|
rssi3.txt=rssi2.txt
|
||||||
|
time3.txt=time2.txt
|
||||||
|
p3.txt=p2.txt
|
||||||
|
tg3.txt=tg2.txt
|
||||||
|
// copy line 1 to 2
|
||||||
|
lh2.txt=lh1.txt
|
||||||
|
ber2.txt=ber1.txt
|
||||||
|
rssi2.txt=rssi1.txt
|
||||||
|
time2.txt=time1.txt
|
||||||
|
p2.txt=p1.txt
|
||||||
|
tg2.txt=tg1.txt
|
||||||
|
// copy line 0 to 1
|
||||||
|
lh1.txt=now.txt
|
||||||
|
ber1.txt=ber.txt
|
||||||
|
rssi1.txt=rssi.txt
|
||||||
|
time1.txt=time0.txt
|
||||||
|
p1.txt=p0.txt
|
||||||
|
tg1.txt=tg.txt
|
||||||
|
// get line 0 from MMDVMHost
|
||||||
|
substr t2.txt,now.txt,4,100
|
||||||
|
ber.txt=t7.txt
|
||||||
|
rssi.txt=t5.txt
|
||||||
|
// Uhrzeit Minuten
|
||||||
|
time0.txt=""
|
||||||
|
covx rtc3,va5.txt,2,0
|
||||||
|
time0.txt+=va5.txt
|
||||||
|
time0.txt+=":"
|
||||||
|
// Sekunden
|
||||||
|
covx rtc4,va7.txt,2,0
|
||||||
|
time0.txt+=va7.txt
|
||||||
|
// Durchgang SECONDS p0.txt
|
||||||
|
sec_rest.val=slot2t.val
|
||||||
|
sec_rest.val%=20
|
||||||
|
sec.val=slot2t.val
|
||||||
|
sec.val/=20
|
||||||
|
// Rest dezimal -> Sekunden: rest/100*60
|
||||||
|
sec_rest.val*=5
|
||||||
|
p0.txt=""
|
||||||
|
covx sec.val,p0.txt,0,0
|
||||||
|
p0.txt+="."
|
||||||
|
covx sec_rest.val,sec_tmp.txt,0,0
|
||||||
|
substr sec_tmp.txt,sec_tmp2.txt,0,1
|
||||||
|
p0.txt+=sec_tmp2.txt
|
||||||
|
p0.txt+="s"
|
||||||
|
slot2t.val=0
|
||||||
|
substr t2.txt,tg.txt,0,1
|
||||||
|
tg.txt+="-"
|
||||||
|
tg.txt+=t3.txt
|
||||||
|
t5.txt=""
|
||||||
|
t7.txt=""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
code_excerpts/70_SYSTEM_PreInit.txt
Normal file
10
code_excerpts/70_SYSTEM_PreInit.txt
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
repo h0.val,10
|
||||||
|
repo n0.val,10
|
||||||
|
// show display version
|
||||||
|
// and serial number
|
||||||
|
printh 2A
|
||||||
|
printh FC
|
||||||
|
printh 02
|
||||||
|
printh FF
|
||||||
|
printh FF
|
||||||
|
printh FF
|
89
code_excerpts/70_tm0.txt
Normal file
89
code_excerpts/70_tm0.txt
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
// RTC Clock
|
||||||
|
// va0 = time string variable
|
||||||
|
// t_time = text field name
|
||||||
|
//
|
||||||
|
// weekday
|
||||||
|
if(rtc6==0)
|
||||||
|
{
|
||||||
|
va1.txt="Sonntag"
|
||||||
|
}else if(rtc6==1)
|
||||||
|
{
|
||||||
|
va1.txt="Montag"
|
||||||
|
}else if(rtc6==2)
|
||||||
|
{
|
||||||
|
va1.txt="Dienstag"
|
||||||
|
}else if(rtc6==3)
|
||||||
|
{
|
||||||
|
va1.txt="Mittwoch"
|
||||||
|
}else if(rtc6==4)
|
||||||
|
{
|
||||||
|
va1.txt="Donnerstag"
|
||||||
|
}else if(rtc6==5)
|
||||||
|
{
|
||||||
|
va1.txt="Freitag"
|
||||||
|
}else if(rtc6==6)
|
||||||
|
{
|
||||||
|
va1.txt="Samstag"
|
||||||
|
}
|
||||||
|
va0.txt=va1.txt
|
||||||
|
va0.txt+=", "
|
||||||
|
// day
|
||||||
|
covx rtc2,va1.txt,0,0
|
||||||
|
va0.txt+=va1.txt
|
||||||
|
va0.txt+=". "
|
||||||
|
// add month
|
||||||
|
if(rtc1==1)
|
||||||
|
{
|
||||||
|
va1.txt="Jänner"
|
||||||
|
}else if(rtc1==2)
|
||||||
|
{
|
||||||
|
va1.txt="Februar"
|
||||||
|
}else if(rtc1==3)
|
||||||
|
{
|
||||||
|
va1.txt="März"
|
||||||
|
}else if(rtc1==4)
|
||||||
|
{
|
||||||
|
va1.txt="April"
|
||||||
|
}else if(rtc1==5)
|
||||||
|
{
|
||||||
|
va1.txt="Mai"
|
||||||
|
}else if(rtc1==6)
|
||||||
|
{
|
||||||
|
va1.txt="Juni"
|
||||||
|
}else if(rtc1==7)
|
||||||
|
{
|
||||||
|
va1.txt="Juli"
|
||||||
|
}else if(rtc1==8)
|
||||||
|
{
|
||||||
|
va1.txt="August"
|
||||||
|
}else if(rtc1==9)
|
||||||
|
{
|
||||||
|
va1.txt="September"
|
||||||
|
}else if(rtc1==10)
|
||||||
|
{
|
||||||
|
va1.txt="Oktober"
|
||||||
|
}else if(rtc1==11)
|
||||||
|
{
|
||||||
|
va1.txt="November"
|
||||||
|
}else if(rtc1==12)
|
||||||
|
{
|
||||||
|
va1.txt="Dezember"
|
||||||
|
}
|
||||||
|
va0.txt+=va1.txt
|
||||||
|
va0.txt+=" "
|
||||||
|
// year
|
||||||
|
covx rtc0,va1.txt,0,0
|
||||||
|
va0.txt+=va1.txt
|
||||||
|
va0.txt+=" "
|
||||||
|
// hours
|
||||||
|
covx rtc3,va1.txt,2,0
|
||||||
|
va0.txt+=va1.txt
|
||||||
|
va0.txt+=":"
|
||||||
|
// minutes
|
||||||
|
covx rtc4,va1.txt,2,0
|
||||||
|
va0.txt+=va1.txt
|
||||||
|
va0.txt+=":"
|
||||||
|
// seconds
|
||||||
|
covx rtc5,va1.txt,2,0
|
||||||
|
va0.txt+=va1.txt
|
||||||
|
t_time.txt=va0.txt
|
22
code_excerpts/README.md
Normal file
22
code_excerpts/README.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
## code_excerpts
|
||||||
|
|
||||||
|
Okay, usually you go and look into the HMI files and get the code from there.
|
||||||
|
But, not everyone is a code so I spent another hour installing those nasty
|
||||||
|
Nextion editor (had to find out which versions works with these files since
|
||||||
|
I never touched those files since I created them back in 2019/2020/2021- I
|
||||||
|
really don't know when that was exactly...
|
||||||
|
|
||||||
|
So this folder exists only for one purpose: to let people get an idea of what
|
||||||
|
they have to work when trying to edit these files.
|
||||||
|
|
||||||
|
Also it might be easier to review the code in case I have to look at (parts of)
|
||||||
|
it again. (I hope not)
|
||||||
|
|
||||||
|
### Important / Wichtig
|
||||||
|
|
||||||
|
**Please, this code is far not complete**, it is an excerpt taken from the
|
||||||
|
HMI files and it only exists to have a place that can be referred without
|
||||||
|
having to download the HMI files and open them with the Nextion Editor.
|
||||||
|
|
||||||
|
Sidenote: I think I used the LTS version.
|
||||||
|
|
4
code_excerpts/info.txt
Normal file
4
code_excerpts/info.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
status codes and field names
|
||||||
|
|
||||||
|
https://github.com/WA6HXG/MMDVM-Nextion-Screen-Layouts/blob/master/Info%20Sheets/Status%20Codes%20and%20Fields.txt
|
||||||
|
|
Loading…
Add table
Reference in a new issue