And you need add dual tuner check. (like my Triple is)
I can't do at the moment that, what I could on # 111
Posted 12 March 2019 - 20:58
And you need add dual tuner check. (like my Triple is)
I can't do at the moment that, what I could on # 111
DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB
Vertex 4K60 4:4:4 600MHz
Posted 13 March 2019 - 06:53
Edited by zeros, 13 March 2019 - 06:56.
DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB
Vertex 4K60 4:4:4 600MHz
Posted 13 March 2019 - 07:09
Posted 13 March 2019 - 07:54
@athoik - after this I have again all hotswitchable DVB-T/C tuners on Formuler1, e4hd and USB T230C2. This boxes have not "mode" in /proc/stb/frontend/0
And then is there again problem, that if is standard tuner detected as "hotswitchable", disable it is easy, but when I want workable tuner again, I must enable it and then restart gui.
And f.eg. Duo4k with 1x twin FBC and 1x usb-dvbt/c has 'mode' in: 0,1,2,3, 8, 9, from (0 -15,fbc)
Edited by ims, 13 March 2019 - 08:03.
Posted 13 March 2019 - 08:05
Edited by littlesat, 13 March 2019 - 08:10.
WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W
Posted 13 March 2019 - 14:09
You are not wrong, the tuner type change still pushes only one type.
https://github.com/O...anager.py#L1485
Can you confirm it, with an extra debug on this function?
Posted 13 March 2019 - 14:54
I let you know when I'm at home. My Triple seemed works nicely, only restart needed, what I first didn't realize.
With this OK:
self.hotswitchable = not os.path.exists("/proc/stb/frontend/%d/mode" % self.frontend_id)
I tried also:
self.hotswitchable = self.description.upper().startswith("Si2169")
But it didn't work somehow or didn't do this trick..
With
self.hotswitchable = self.description.upper().startswith("AVL")
it like in previous situation, not 'Hotswitchable', but as I see, it is 'Hotswitchable'.
I also add the picture how it feels to me.
What you specially mean with "Can you confirm it, with an extra debug on this function?"
Edited by zeros, 13 March 2019 - 14:55.
DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB
Vertex 4K60 4:4:4 600MHz
Posted 13 March 2019 - 15:22
self.hotswitchable = self.description.upper().startswith("Si2169")
This is due to the i.....
We need to find a different way for this... but it sounds DMM made a tricky-trick in their drivers to make this Si tuner hotswitchable..
But we do not support this DMM box ... so we cant take this box in account...
Maybe someone needs to change it to..
self.hotswitchable = self.description.upper().startswith("AVL") or self.description == "Si2169":
(when other boxes use the same tuner it might also not work for this tuner in case DMM made a tricky-trick)
Edited by littlesat, 13 March 2019 - 15:25.
WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W
Posted 13 March 2019 - 18:19
root@osmio4k:~# dvb-fe-tool -f 1 Device Availink AVL6762 (/dev/dvb/adapter0/frontend1) capabilities: CAN_2G_MODULATION CAN_FEC_1_2 CAN_FEC_2_3 CAN_FEC_3_4 CAN_FEC_4_5 CAN_FEC_5_6 CAN_FEC_6_7 CAN_FEC_7_8 CAN_FEC_8_9 CAN_FEC_AUTO CAN_GUARD_INTERVAL_AUTO CAN_HIERARCHY_AUTO CAN_INVERSION_AUTO CAN_MULTISTREAM CAN_QAM_16 CAN_QAM_32 CAN_QAM_64 CAN_QAM_128 CAN_QAM_256 CAN_QAM_AUTO CAN_RECOVER CAN_TRANSMISSION_MODE_AUTO DVB API Version 5.11, Current v5 delivery system: DVBT Supported delivery systems: [DVBT] DVBT2 DVBC/ANNEX_ABy default there is no "type enabled", so I enabled the DVB-T. Returning back to tuner list, the Disabled doesn't switch to Enabled.
Posted 13 March 2019 - 18:41
I just tested, that this also not doing that trick:
self.hotswitchable = self.description.upper().startswith("AVL") or self.description == "Si2169"
When I swap it to
self.hotswitchable = not os.path.exists("/proc/stb/frontend/%d/mode" % self.frontend_id)
Then my tuners are 'Hotswitchable'.
DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB
Vertex 4K60 4:4:4 600MHz
Posted 13 March 2019 - 18:43
That is quite logical, as you enable it when something does not exist. So your code is useless, you can replace it by "self.hotswitchable = true".
Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)
Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.
Many answers to your question can be found in our new and improved wiki.
Posted 13 March 2019 - 19:23
diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index fff8794..bcdc27c 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -1368,13 +1368,13 @@ def InitNimManager(nimmgr, update_slots = []): if os.path.exists("/proc/stb/frontend/%d/t2mirawmode" % slot): open("/proc/stb/frontend/%d/t2mirawmode" % slot, "w").write(configElement.value) - def createSatConfig(nim, slot_id, empty_slots): + def createSatConfig(nim, slot_id): nim.toneAmplitude = ConfigSelection([("11", "340mV"), ("10", "360mV"), ("9", "600mV"), ("8", "700mV"), ("7", "800mV"), ("6", "900mV"), ("5", "1100mV")], "7") - nim.toneAmplitude.fe_id = slot_id - empty_slots + nim.toneAmplitude.fe_id = slot_id nim.toneAmplitude.slot_id = slot_id nim.toneAmplitude.addNotifier(toneAmplitudeChanged) nim.scpcSearchRange = ConfigSelection([("0", _("no")), ("1", _("yes"))], "0") - nim.scpcSearchRange.fe_id = slot_id - empty_slots + nim.scpcSearchRange.fe_id = slot_id nim.scpcSearchRange.slot_id = slot_id nim.scpcSearchRange.addNotifier(scpcSearchRangeChanged) nim.t2miRawMode = ConfigSelection([("disable", _("disabled")), ("enable", _("enabled"))], "disable") @@ -1484,6 +1484,7 @@ def InitNimManager(nimmgr, update_slots = []): def tunerTypeChanged(nimmgr, configElement, initial=False): fe_id = configElement.fe_id + print "[InitNimManager] tunerTypeChanged: setFrontendType %s" % nimmgr.nim_slots[fe_id].getType() eDVBResourceManager.getInstance().setFrontendType(nimmgr.nim_slots[fe_id].frontend_id, nimmgr.nim_slots[fe_id].getType()) try: raw_channel = eDVBResourceManager.getInstance().allocateRawChannel(fe_id) @@ -1545,22 +1546,13 @@ def InitNimManager(nimmgr, update_slots = []): if tunerTypesEnabled: print "[InitNimManager] enable hotswitchable tuner type(s) %s" % ",".join(tunerTypesEnabled) eDVBResourceManager.getInstance().setFrontendType(nimmgr.nim_slots[fe_id].frontend_id, ",".join(tunerTypesEnabled)) - if nim.configMode.value == "nothing": - nim.configMode.cancel() - if nim.configMode.value == "nothing": - nim.configMode.value = "simple" + createConfig(nim, slot) else: print "[InitNimManager] disable hotswitchable tuner" nim.configMode.value = nim.configMode.default = "nothing" - empty_slots = 0 - for slot in nimmgr.nim_slots: + def createConfig(nim, slot): slot_id = slot.slot - if update_slots and (slot_id not in update_slots): - continue - nim = config.Nims[slot_id] - nim.force_legacy_signal_stats = ConfigYesNo(default = False) - if slot.isCompatible("DVB-S"): config_mode_choices = {"nothing": _("Disabled"), "simple": _("Simple"), "advanced": _("Advanced")} if len(nimmgr.getNimListOfType(slot.type, exception=slot_id)) > 0: @@ -1575,13 +1567,22 @@ def InitNimManager(nimmgr, update_slots = []): else: nim.configMode = ConfigSelection(choices = { "nothing": _("disabled") }, default="nothing") if not slot.canBeCompatible("DVB-S"): - empty_slots += 1 if slot.type is not None: print "[InitNimManager] pls add support for this frontend type!", slot.type - fe_id = slot_id - empty_slots + + for slot in nimmgr.nim_slots: + slot_id = slot.slot + if update_slots and (slot_id not in update_slots): + continue + nim = config.Nims[slot_id] + nim.force_legacy_signal_stats = ConfigYesNo(default = False) + + createConfig(nim, slot) + + fe_id = slot_id if slot.canBeCompatible("DVB-S"): - createSatConfig(nim, slot_id, empty_slots) + createSatConfig(nim, slot_id) if slot.canBeCompatible("DVB-C"): createCableConfig(nim, slot_id) if slot.canBeCompatible("DVB-T"):
Posted 13 March 2019 - 20:42
DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB
Vertex 4K60 4:4:4 600MHz
Posted 13 March 2019 - 21:02
For me everything works, my tuners are ‘hotswithable’.
If I put two different Dvb-T MUX recording, then DVB-S is unavailable.
That was the last one, too, I think it's okay?
Posted 13 March 2019 - 21:04
That is quite logical, as you enable it when something does not exist. So your code is useless, you can replace it by "self.hotswitchable = true".
Posted 13 March 2019 - 21:33
DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB
Vertex 4K60 4:4:4 600MHz
Posted 13 March 2019 - 21:59
Edited by littlesat, 13 March 2019 - 22:00.
WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W
Posted 13 March 2019 - 22:23
0 members, 21 guests, 0 anonymous users