g4klx / MMDVMHost

The host program for the MMDVM
GNU General Public License v2.0
373 stars 271 forks source link

OVCM Clear mode #656

Open do1kbl opened 3 years ago

do1kbl commented 3 years ago

Hello Jonathan, on the dmrhost (https://github.com/BrandMeister/DMRHost) they make a OVCM=4 This mode allowed it to used my old Motorola DP3601 without problems.

It is possible to put this function into your MMDVMHost?

73 Do1KBL, Kim

g4klx commented 3 years ago

An OVCM of 4 is meaningless. If you look at the ETSI DMR specification you will see that the OVCM is only 1 or 0. Whatever BM are doing, it isn’t OVCM.

Sent from Yahoo Mail for iPhone

On Friday, November 20, 2020, 20:57, Kim-Benjamin notifications@github.com wrote:

Hello Jonathan, on the dmrhost (https://github.com/BrandMeister/DMRHost) they make a OVCM=4 This mode allowed it to used my old Motorola DP3601 without problems.

It is possible to put this function into your MMDVMHost?

73 Do1KBL, Kim

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

do1kbl commented 3 years ago

Ok On Motorola device I hear No voice if someone has activate OVCM on TX

thats mean I need to sell my old device, but its not usable and buy a newer Motorola.

Hytera and Tytera has no problems

g4klx commented 3 years ago

I’m not blaming BM for anything. Can you explain this then: OVCM is defined as being a 1-bit field, therefore having a value of 0 or 1. Within the Service Options, OVCM is in position 0x40, but allowing your OVCM to have a value other than 0 or 1 is confusing. If I were to set your OVCM value to 0x01, would that set the Priority to 3 for example?

Sent from Yahoo Mail for iPhone

On Sunday, November 22, 2020, 09:29, Artem Prilutskiy notifications@github.com wrote:

Please don’t blame BM. BM does what it should: set bit 2 to 1 (0x04).

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub, or unsubscribe.

stefansaraev commented 3 years ago

Not sure where you get the idea that someone wants different value than 0 or 1..

cyanide-burnout commented 3 years ago

It seems someone mixed things. Guys added value 4 to the host settings that allows to remove OVCM bit, I guess

cyanide-burnout commented 3 years ago

And OVCM attribute has bit 2 (0x04) and not 6 (0x40). Please read ts_10236102v020401p.pdf page 79. Bit 6 (0x40) indicates encrypted transmission.

randybuildsthings commented 3 years ago

The BM repo is a stripped-down fork of MMDVMHost (basically removes anything not DMR-related) that includes some additional cases for the OVCM configuration switch. Inside of the Conf.cpp on that repo is the following:

    else if (::strcmp(key, "OVCM") == 0)
        switch(::atoi(value)) {
            case 1:
                m_dmrOVCM = DMR_OVCM_RX_ON;
                break;
            case 2:
                m_dmrOVCM = DMR_OVCM_TX_ON;
                break;
            case 3:
                m_dmrOVCM = DMR_OVCM_ON;
                break;
            case 4:
                m_dmrOVCM = DMR_OVCM_FORCE_OFF;
                break;
            default:
                m_dmrOVCM = DMR_OVCM_OFF;
                break;
        }

So it's apparently an option that ensures OVCM is disabled on all traffic that goes in or out. Basically used inside of CDMRSlot::writeModem() to check every way that OVCM might be set to ON and clears the bit.

g4klx commented 3 years ago

Can you point me at the location of DMR repository so I can add support for this, it looks useful.

Sent from Yahoo Mail for iPhone

On Friday, March 5, 2021, 15:23, Randy Hall notifications@github.com wrote:

The BM repo is a stripped-down fork of MMDVMHost (basically removes anything not DMR-related) that includes some additional cases for the OVCM configuration switch. Inside of the Conf.cpp on that repo is the following: else if (::strcmp(key, "OVCM") == 0) switch(::atoi(value)) { case 1: m_dmrOVCM = DMR_OVCM_RX_ON; break; case 2: m_dmrOVCM = DMR_OVCM_TX_ON; break; case 3: m_dmrOVCM = DMR_OVCM_ON; break; case 4: m_dmrOVCM = DMR_OVCM_FORCE_OFF; break; default: m_dmrOVCM = DMR_OVCM_OFF; break; }

So it's apparently an option that ensures OVCM is disabled on all traffic that goes in or out. Basically used inside of CDMRSlot::writeModem() to check every way that OVCM might be set to ON and clears the bit.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

randybuildsthings commented 3 years ago

https://github.com/BrandMeister/DMRHost/blob/0910faaad428df4a290aab8224a16d2584883ed8/DMRSlot.cpp

g4klx commented 3 years ago

The original explanation about '4' was vert badly done, which is why I didn't follow up on it. A link to the change in the BM version would have explained things a lot better. I've now manually added the same change to the original MMDVM Host, so both versions should now be in sync.