Closed DC7IA closed 3 years ago
Ok there is something horribly wrong with my en/decoding of the codeplug. So please do not try to write anything to the device for now! It appears that I am reading the wrong memory region. Writing to the wrong one may brick your device. So for now, lets first figure out what goes wrong in the decoding.
I can't even try since it does not let me, so I am safe. :)
I found 151 valid contacts with the last ones lacking the name. But it appears that the decoder just does not stop at the last one.
You can also have a look at what the decoder does with the command line using
dmrconf decode --radio=opengd77 codeplug_opengd77.dfu | less
Contacts up to 120 are correct, Channels 121 and beyond are incorrect. It appears to show contacts that were deleted.
Ok, there is actually a flag that maks whether a contact is valid or not. This flag is set for every of the 1024 contacts in memory. I may also check whether the name is valid. Serges dmrconfig also checks the name for validity of the contact.
So, probably fixed in commit d6fab544b5894c9f329a2b5fa422916b1aa940a6.
Tell me how to build it and I tell you if it works :D
Extended the readme.md. I hope I have not missed some of the dependencies or build steps.
If you build the tools from from the sources, lets first stay on the command line. This way we can separate library from GUI issues. To read a code-plug directly as text call
$ dmrconf read codeplug.conf
The command-line tool tries to guess the format from the given file name (i.e., ".dfu" is binary and ".conf" is text).
That gives me:
$ dmrconf read codeplug_opengd77.dfu
ERROR in /build/qdmr-E64IDD/qdmr-0.4.5/cli/readcodeplug.cc@26: Cannot detect radio: detect(): No matching radio found.
Don't know why codeblocks won't work... So weird formatting for now... :/
Extended the readme.md. I hope I have not missed some of the dependencies or build steps.
Apt does not recognise the packet names if there are commas:
$ sudo apt-get install libusb-1.0-0-dev qtbase5-dev, qttools5-dev, qttools5-dev-tools, qtpositioning5-dev, libqt5serialport5-dev
Opps, copied it from the DEB build script. Fixed it in commit 18a39a520ad4aac3b0f4106ced2499d22845293c.
You may also reconfigure the build with (from within the build-dir)
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
as cmake installs the device rules. This requires root anyway hence the binary can be installed globally under /usr/local. To make sure you are using the right build uninstall the APT versions of qdmr and dmrconf with
apt-get remove qdmr dmrconf
Oh, I just use it from the build directory. :)
I don't like installing something that is not from the package sources.
So, probably fixed in commit d6fab54.
Looks like it. No longer shows non-existing contacts and I can flash!
Great. :D
Ok, i close that issue now.
I've noticed the following when reading a codeplug and trying to write back what I just read (no changes made).
I am told I have to many contacts, but I don't have 2048, I have far less.
But qmdr shows non-existing contacts:
It shows several hundred of these.