There is no scenario where duplicating talkgroups is the best solution. Playing traffic if
any instance of a talkgroup is enabled causes at least as many problems as is solves, because if you want to avoid a talkgroup, now you have to avoid EVERY instance of the talkgroup. And allowing the possibility of conflicting text labels, service type definitions, location coordinates, and so on for a talkgroup ID is still a logical error, and creates all sorts of opportunities for needless confusion on the part of the user.
- "Why do I have to Avoid Podunk Sanitation 3 times before it quits spamming me?" (It was accidentally entered 3 times)
- "Why do I hear the same traffic on Podunk City Fire and Pudunk County Fire?" (The description was changed in the RR database, and the creation of a duplicate TG entry was triggered as a result)
- "Why am I still hearing Podunk County Fire after turning off all of the fire service types?" (same as previous, except service type was changed instead of description)
And of course, duplicating talkgroup entries means additional memory and storage is required, as well as additional processing before a play/skip decision can be made for calls on a duplicated talkgroup ID.
In your example, the best solution is to allow the entry of a range of QKs as follows:
Incident start:
1.2.22-39 Yes (turns OFF all department quick keys from 1.2.22 to 1.2.39)
1.2.27 Yes (toggles on department quick key 1.2.27)
Incident end:
1.2.22+39 Yes (turns ON all department quick keys from 1.2.22 to 1.2.39)
+ and - are entered by Function, No and Function, Yes respectively.
That would require a firmware update, but it would probably be a smaller one than changing talkgroup ID lookup behavior so that it looks at
all instances of a TGID and performs a logical OR on the result of the play/skip matrix for each instance before making a final decision on whether to play or skip the call. Current behavior is the play/skip decision matrix (is the department avoided, service type enabled, etc) is only run on the first instance found, leading to the current confusing and random results when duplicate talkgroup definitions are programmed.
Enabling the entry of a range of quick keys at the favorite list, system, and department levels, and allowing the desired quick key state to be explicitly stated (so the user is not limited to "toggle the current state) would have many other benefits. In the real world, the scenario you described above might not fall under a single trunked system. Each district might be in separate systems, perhaps even in different favorite lists organized by city, county, township, etc. Allowing duplicate talkgroup IDs in a trunked system would be useless in that case. But allowing the user to toggle a range of quick keys on and off at any desired level (favorite list, system, or department) would solve the conundrum you posited, even if the "districts" were split across separate systems, or even across multiple favorite lists. You could do things like:
1- Yes (turn on all system and department quick keys in the favorite list with quick key 1)
1.2+ Yes (turn on FL key 1, system quick key 1.2, and ALL department quick keys starting with 1.2)
That turns off everything in FL 1, except for system 1.2 and all of the departments under it.
1+ Yes would turn on FL key 1, and all system and department keys within FL 1.
1-7 Yes (turn off FL quick keys 1 through 7)
5 Yes (turn on FL quick key 5)
That turns off FLs 1 through 7, except for 5.
1+7 Yes turns on FL quick keys 1 through 7.
And so on. IMO that is a far better, more flexible, and more powerful approach than allowing duplicate talkgroup ID entries because it allows the same sort of functionality across multiple systems and favorite lists (not just departments within a single system), but without any of the ambiguity and confusion that will inevitably arise if you allow multiple conflicting definitions for a talkgroup ID.