No text shown by CI+ menu - Im CI+-Menü wird kein Text angezeigt

    • No text shown by CI+ menu - Im CI+-Menü wird kein Text angezeigt

      Hello,

      Is there any reason or anything I may configure to display at least the CI+ menu on DM920UHD?
      The CI+ card is from my service provider, but I have also a T-Rex cam for which the menu is displayed properly, so the CI+ slots are working properly.
      I switched also the CI between the slots and the CI menu is always displayed for T-Rex, but not for my provider CI card.
      When I open the Common interface (either from native interface of standard newnigma2 image or from Pineas) I see shortly "wait for mmi...." and then it is disappearing.
      In the dreamciplus 10.32 log file I see the menu entries after "MENU last" message.

      Please check the attachments to see how the menu is actually not rendered.

      Kindly please share your experience or anything I can do to troubleshoot this issue and eventually to modify the plugin (in case the code dreamciplus-armhf intercepts all the messages from CI card).


      Thank you!
      =========================
      Google translation to increase the audience :)

      Hallo,

      Gibt es einen Grund oder irgendetwas, das ich konfigurieren kann, um zumindest das CI+-Menü auf dem DM920UHD anzuzeigen?
      Die CI+-Karte stammt von meinem Dienstanbieter, aber ich habe auch eine T-Rex-Kamera, bei der das Menü ordnungsgemäß angezeigt wird, sodass die CI+-Steckplätze ordnungsgemäß funktionieren.
      Ich habe auch das CI zwischen den Steckplätzen umgeschaltet und das CI-Menü wird für T-Rex immer angezeigt, nicht jedoch für die CI-Karte meines Anbieters.
      Wenn ich die Common-Schnittstelle öffne (entweder über die native Schnittstelle des Standard-Newnigma2-Images oder über Pineas), sehe ich kurz „Warten auf MMI …“ und dann verschwindet es.
      In der Protokolldatei von dreamciplus 10.32 sehe ich die Menüeinträge nach der Meldung „MENU last“.
      Bitte überprüfen Sie die Anhänge, um zu sehen, dass das Menü tatsächlich nicht gerendert wird.

      Bitte teilen Sie uns Ihre Erfahrungen mit oder teilen Sie mir mit, was ich tun kann, um dieses Problem zu beheben und eventuell das Plugin zu ändern (falls der Code dreamciplus-armhf alle Nachrichten von der CI-Karte abfängt).

      Danke schön!
      Bilder
      • screenshot_CI.jpg

        155,63 kB, 1.920×1.080, 111 mal angesehen
      • screenshot_CI_02.jpg

        75,57 kB, 1.920×1.080, 92 mal angesehen
    • @GrandePuffo

      Erstelle mal ein Backup von deinem derzeitigen Image, das kannst du nach dem Test ja wieder flashen ;) .
      Flashe dann mal ein cleanes NN2, ohne alte Einstellungen zu übernehmen, und boote ohne Modul drin. Du brauchst hinterher noch nicht mal dreamciplus oder Pineas installieren.
      Dann gehst du wieder zu Common Interface und siehst nach, ob in dem Screen wieder etwas angezeigt wird. Ich habe das eben gerade mit dem letzten NN2 aus der Database durchgespielt, und läuft alles.
      Skin ist der NN2 Standard Nuke.EVO
    • Hello all,

      To be more clear: the plugin Common Interface menu appears, where I can do Init, Reset, assign CAIDS, assign providers etc.
      My problem is with the menu of the CI+ module where you set the parental control, see the diagnostics etc.

      The T-Rex menu is displayed, but is not displayed for my provider's CI+.
      In dreamcuiplus log I can see the menu entries and they are displayed correctly, but not on the interface.

      Thank you!
      ====================================================================================================

      Hallo ,

      Um es klarer auszudrücken: Das Plugin-Common-Interface-Menü erscheint, in dem ich Init, Reset, CAIDS zuweisen, Provider zuweisen usw. durchführen kann.
      Mein Problem liegt im Menü des CI+-Moduls, in dem Sie die Kindersicherung einstellen, die Diagnose sehen usw.
      Das T-Rex-Menü wird angezeigt, beim CI+ meines Anbieters jedoch nicht.

      Im Dreamcuiplus-Protokoll kann ich die Menüeinträge sehen und sie werden korrekt angezeigt, aber nicht auf der Benutzeroberfläche.

      Danke schön!
    • Hello,

      I think the CI+ menu is not shown because before accessing the menu, the CI+ replies with 0x9f 0x88 0x01 which is a display control and the plugin interface is somehow not passing this.
      Later, from dreamciplus log, I can see that the CI+ module replies with 0x9f 0x88 0x09 (which is the menu message).


      Do you have any idea how to patch CI.py screen plugin?


      Thank you!

      ============================================================================================================


      Hallo,

      Ich denke, dass das CI+-Menü nicht angezeigt wird, weil das CI+ vor dem Zugriff auf das Menü mit 0x9f 0x88 0x01 antwortet, was eine Anzeigesteuerung ist und die Plugin-Schnittstelle dies irgendwie nicht weitergibt.
      Später kann ich im dreamciplus log sehen, dass das CI+-Modul mit 0x9f 0x88 0x09 antwortet (das ist die Menümeldung).
      Haben Sie eine Idee, wie man das CI.py-Bildschirm-Plugin patcht?

      Danke schön!
    • Hello @sodex,

      Sorry, but seems that I misunderstood. I am using Google translate to add the message in German.
      So, you want to know the provider?
      If yes, this is Orange Communications Romania (ID=0x92f).
      If you want I can add a picture of it.

      And I do not beg for help! I only wanted to know if someone encountered any similar issue

      Thank you!

      ===========================================

      Tut mir leid, aber es scheint, dass ich das falsch verstanden habe. Ich verwende Google Translate, um die Nachricht auf Deutsch hinzuzufügen.
      Sie möchten den Anbieter wissen?
      Wenn ja, ist dies Orange Communications Rumänien (ID=0x92f).
      Wenn Sie möchten, kann ich ein Bild davon hinzufügen.

      Und ich bitte nicht um Hilfe! Ich wollte nur wissen, ob jemand auf ein ähnliches Problem gestoßen ist

      Danke schön!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von stickedlabel ()

    • Hello,

      I added some code to CI.py to log into a file what is the text fetched by _socketmmi.so and this is what is fetching:
      ('TEXT', '', 1)
      ('TEXT', '', 2)
      ('TEXT', '', 3)

      Based on what dreamciplus 10.32 shows in log, this should be:
      ('TEXT', 'Limba: Romana -> Magyar / English', 1)
      ('TEXT', 'Control Parental', 2)
      ('TEXT', 'Diagnostice', 3)

      Translated this is:
      ('TEXT', 'Language: Romanian -> Hungarian / English', 1)
      ('TEXT', 'Parental Control', 2)
      ('TEXT', 'Diagnostics', 3)

      Therefore, _socketmmi.so is not capable to fetch properly the replies from CI+.
      Without support from Dream Multimedia, it looks like I reached a dead end. :( :mauer:

      Thank you!
      ======================================================
      Hallo,

      Ich habe CI.py Code hinzugefügt, um in einer Datei den von _socketmmi.so abgerufenen Text einzutragen, und Folgendes wird abgerufen:
      ('TEXT','', 1)
      ('TEXT', '', 2)
      ('TEXT', '', 3)

      Basierend auf dem, was dreamciplus 10.32 im Protokoll anzeigt, sollte dies sein:
      ('TEXT', 'Limba: Romana -> Magyar / English', 1)
      ('TEXT', 'Control Parental', 2)
      ('TEXT', 'Diagnostice', 3)

      Übersetzt lautet das:
      ('TEXT', 'Sprache: Rumänisch -> Ungarisch / Englisch', 1)
      ('TEXT', 'Kindersicherung', 2)
      ('TEXT', 'Diagnose', 3)

      Daher ist _socketmmi.so nicht in der Lage, die Antworten von CI+ ordnungsgemäß abzurufen.
      Ohne die Unterstützung von Dream Multimedia scheine ich in einer Sackgasse angelangt zu sein. :( :mauer:

      Danke schön!
    • Hello,

      I did manage to go a little bit further with my analysis.
      I raised an exception in the Python code when entries are added to the plugin screen (in CI.py under addEntry, or in for Pineas in plugin.py under addEntryPineas) in order to have a crash log.

      What I noticed is that when trying to access the Predator CI menu, I see this in the crash log:


      text tag: 9f 88 03
      9 bytes text
      eMMI_UI::mmiScreenAddText(Smartcard)
      addText Smartcard with id 3
      Smartcard

      but when I access the Orange Communications CI+ card is see this (I added the hex codes as when pasting, the not printable characters are not shown):

      text tag: 9f 88 03
      16 bytes text
      eMMI_UI::mmiScreenAddText()
      addText with id 1
      \0x10\0x02CI+ CAM Meniu

      Please check the screenshot

      Please note that for Predator when eMMI_UI::mmiScreenAddText is called it has the text to be added, but for Orange CI+ the test is missing, although in the stack (under addText with id1 the whole character array is dumped).
      So, now I suspect that either the eMMI_UI::processMMIData drops the whole text, or maybe eMMI_UI::mmiScreenAddText drops it.


      Thanks!

      =====================================================

      Hallo,

      Ich habe es geschafft, mit meiner Analyse noch ein wenig weiter zu gehen.
      Ich habe im Python-Code eine Ausnahme ausgelöst, wenn Einträge zum Plugin-Bildschirm hinzugefügt werden (in CI.py unter addEntry oder für Pineas inplugin.py unter addEntryPineas), um ein Absturzprotokoll zu haben.
      Was mir aufgefallen ist, ist, dass ich beim Versuch, auf das Predator CI-Menü zuzugreifen, Folgendes im Absturzprotokoll sehe:

      text tag: 9f 88 03
      9 bytes text
      eMMI_UI::mmiScreenAddText(Smartcard)
      addText Smartcard with id 3
      Smartcard

      aber wenn ich auf die CI+-Karte von Orange Communications zugreife, sehe ich Folgendes (ich habe die Hex-Codes hinzugefügt, da beim Einfügen die nicht druckbaren Zeichen nicht angezeigt werden):

      text tag: 9f 88 03
      16 bytes text
      eMMI_UI::mmiScreenAddText()
      addText with id 1
      \0x10\0x02CI+ CAM Meniu

      Bitte überprüfen Sie den Screenshot

      Bitte beachten Sie, dass für Predator beim Aufruf von eMMI_UI::mmiScreenAddText der hinzuzufügende Text vorhanden ist, für Orange CI+ der Test jedoch fehlt, obwohl im Stapel (unter addText mit id1 wird das gesamte Zeichenarray ausgegeben).

      Jetzt vermute ich also, dass entweder eMMI_UI::processMMIData den gesamten Text löscht, oder vielleicht eMMI_UI::mmiScreenAddText.

      Danke!
      Bilder
      • screenshot.png

        14,79 kB, 305×187, 36 mal angesehen
    • Hello,

      I am still checking this and perhaps there is a bug in the code though.
      The same SMIT CI+ card is showing the menu in a Sony TV manufactured in 2007, but not on Newnigma2 image compiled in June 2023.

      So here is what I found out more.
      Checking the replies from CI+ card, I noticed that after 0x9f 0x88 0x03 a byte is sent and this is the value of the string length +3
      This byte is followed by 0x10 0x00 0x02, which I think "tells us" the encoding. However, if I think IS08859-2, the encoding should be set as 0x10 0x02.

      TeX-Quellcode

      1. 9f 88 03 04 10 00 02 20 => " " (length without null terminator: 1 character)
      2. 9f 88 03 10 10 00 02 43 49 2b 20 43 41 4d 20 4d 65 6e 69 75 => "CI+ CAM Meniu" (length without null terminator: 13 characters)
      3. 9f 88 03 04 10 00 02 20 => " " (length without null terminator: 1 character)
      4. 9f 88 03 24 10 00 02 4c 69 6d 62 61 3a 20 52 6f 6d 61 6e 61 20 2d 3e 20 4d 61 67 79 61 72 20 2f 20 45 6e 67 6c 69 73 68 => "Limba: Romana -> Magyar / English" (length without null terminator: 33 characters)
      5. 9f 88 03 13 10 00 02 43 6f 6e 74 72 6f 6c 20 50 61 72 65 6e 74 61 6c => "Control Parental" (length without null terminator: 13 characters)
      6. 9f 88 03 0e 10 00 02 44 69 61 67 6e 6f 73 74 69 63 65 => "Diagnostice" (length without null terminator: 1 character)
      7. ^ ^
      8. | |
      9. | |
      10. | |
      11. | ----------Encoding (For 8859-2 this should be only 10 02 I believe...)
      12. |
      13. |
      14. ------ Length of the text +3
      Alles anzeigen
      Mit Freundlichen Grüßen!
    • Hello,

      This is mainly for the Newnigma2 code maintainers and developers...

      I believe the way the data from CI+ is passed to convertDVBUTF8 from processMMIData is wrong.
      If in the code, the data from CI+ is used as null terminated string, the resulting string will be passed as {0x10, 0x00}.
      If the data from CI+ will be passed to convertDVBUTF8 as unsigned char array, then the actual text will be passed to convertDVBUTF8, including the encoding part.

      Here is a trivial code to demonstrate this:

      C-Quellcode

      1. #include <iostream>
      2. std::string returnString1(const std::string &string, int strLength)
      3. {
      4. std::cout << "First method data: ";
      5. for (int i = 3; i < strLength; i++)
      6. std::cout << string[i];
      7. std::cout << "\n";
      8. std::cout << "The length of the passed string for first method is: " << string.length() << std::endl;
      9. return string;
      10. }
      11. std::string returnString2(const unsigned char *string, int strLength)
      12. {
      13. std::cout << "Second method data: ";
      14. for (int i = 3; i < strLength; i++)
      15. std::cout << string[i];
      16. std::cout << "\n";
      17. std::cout << "The length of the passed string for second method is: " << strLength << std::endl;
      18. string+=3;
      19. return std::string(reinterpret_cast<const char*>(string));
      20. }
      21. int main(int argc, char **argv)
      22. {
      23. unsigned char ci_item[] = {0x0E, 0x10, 0x00, 0x02, 0x44, 0x69, 0x61, 0x67, 0x6E, 0x6F, 0x73, 0x74, 0x69, 0x63, 0x73};
      24. int dataLength = ci_item[0];
      25. std::cout << "Length passed by CI+: " << dataLength << std::endl;
      26. unsigned char *data = ci_item;
      27. data++;
      28. char szString[dataLength + 1];
      29. memcpy(szString, ((char*)data), dataLength);
      30. szString[dataLength] = '\0';
      31. std::string returnedString1 = returnString1(szString, dataLength).c_str();
      32. std::string returnedString2 = returnString2((const unsigned char*)szString, dataLength).c_str();
      33. std::cout << "Returned string using first method: " << returnedString1 << std::endl;
      34. std::cout << "Returned string using second method: " << returnedString2 << std::endl;
      35. return 0;
      36. }
      Alles anzeigen
      And here is the output:

      Length passed by CI+: 14
      First method data: v÷0
      The length of the passed string for first method is: 1
      Second method data: Diagnostics
      The length of the passed string for second method is: 14
      Returned string using first method:
      Returned string using second method: Diagnostics

      Thanks!

      ====================================================
      Hallo,

      Dies ist hauptsächlich für die Newnigma2-Code-Betreuer und -Entwickler gedacht ...

      Ich glaube, dass die Art und Weise, wie die Daten von CI+ von ProcessMMIData an ConvertDVBUTF8 übergeben werden, falsch ist.
      Wenn im Code die Daten von CI+ als nullterminierte Zeichenfolge verwendet werden, wird die resultierende Zeichenfolge als {0x10, 0x00} übergeben.
      Wenn die Daten von CI+ als vorzeichenloses Zeichenarray an „convertDVBUTF8“ übergeben werden, wird der eigentliche Text einschließlich des Codierungsteils an „convertDVBUTF8“ übergeben.

      Oben ist ein trivialer Code, um dies und die Ausgabe zu demonstrieren.

      Danke!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von stickedlabel ()