[Erledigt] Windows Embedded Compact 2013: eine RIL Frage

jal2

Active member
Registriert
7 Sep. 2010
Beiträge
3.708
Hallo,

ich habe eine ziemlich spezielle Frage, aber vielleicht gibt es ja hier im Forum WEC2013 Programmierer:

Ich will in einer C++ Applikation eine WWAN Datenverbindung über ein 3G Modem aufbauen mit RIL, RAS und TAPI. Der ConnectionManager ist keine Option.
Das Gerät hat kein UI.

Ich dachte, dass ich mit RIL den Zustand des 3G Modem beobachte, die SIM entsperre und dann, wenn z.B. UMTS/HSPA verfügbar ist, per RAS/TAPI starte.

RIL macht mir Probleme:

Nach dem Aufruf von RIL_Initialize() mit Response und Notfication Callback und allen Notification Klassen, dachte ich, dass ich einige Notifications bekomme, u.a. eine,
die mir anzeigt, dass die SIM bereit ist (RIL_NOTIFY_RADIOEQUIPMENTSTATECHANGED mit RIL_READYSTATE_SIM gesetzt).
Nichts da, es kommt nur ein RIL_NOTIFY_RADIOPRESENCECHANGED mit Parameter 1, d.h. das Radio ist da.

Im zweiten Versuch rief ich dann die Funktionen
  • RIL_GetEquipmentState()
  • RIL_GetPhoneLockedState()
  • RIL_UnlockPhone(Pin, NULL) /* bei Bedarf, wenn die SIM gelockt ist */

asynchron auf, d.h. mit einem Event im Response-Callback, das gesetzt wird, wenn die ID vorbeikommt.

Beim Aufruf von RIL_UnlockPhone() gibt es leider keine Response innerhalb von acht Sekunden.
Komischerweise gibt es durch diese drei Aufrufe jetzt mehr Notifications, aber keine, die sagt, dass die SIM entsperrt ist.

Beim zweiten Aufruf des Programms sehe ich dann bei RIL_GetPhoneLockedState(), dass die SIM entsperrt ist.

Habe ich RIL falsch verstanden?
Ich könnte den Zustand des Modems mit


  • RIL_GetRegistrationStatus
und
  • RIL_GetGPRSAttached

periodisch pollen, nur wie komme ich dann an die Info aus RIL_NOTIFY_SYSTEMCHANGED (GPRS, UMTS, HSPA, ...) heran?
Ausserdem möchte ich Pollen vermeiden.

Kennt jemand ein Codebeispiel in C++ oder C# für diesen Ablauf? Oder ein gutes Forum, in dem man diese Frage stellen kann?


EDIT: Hat sich erledigt. Ich hatte im Notification Callback eine CriticalSection, jeweils ENTER und LEAVE und dazwischen 3-4 Zeilen Code, u.a. ein ReleaseSemaphore. Seitdem die CritSec weg ist (ich brauchte sie nicht wirklich), klappt alles.

Danke!
jal2
 
Zuletzt bearbeitet:
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben