2009-09-17 5 views
1

J'ai expérimenté avec la bibliothèque 32Feet, qui permet d'utiliser IrDA avec C# et .NetCF en écrivant une petite application de démonstration.WindowsCE IrDA AddressFamilyNotSupported Exception à l'aide de la bibliothèque 32Feet

Sur un périphérique WindowsCE 4.2 ce appllication fonctionne très bien, mais quand je l'essayer sur un appareil WinCE 5 je reçois une exception prise lors de l'appel:

new IrDAClient() 

L'exception est 10047: AddressFamilyNotSupported. J'ai fait un peu de googling, et ce qui arrive est des multiples affichages de ce thread http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-compact-framework/16047/IrDAClient-SocketException-ErrorCode-10047, ce qui semble suggérer qu'un fichier d'en-tête pourrait manquer (ou quelque chose comme ça) de la version WinCE 5.

Quelqu'un a-t-il des conseils, car cela ne semble pas être un problème avec 32Feet, sur où et ce que je devrais rechercher?

--- --- Modifier

Je reçois aussi la même créer une prise directe:

Socket s = new Socket (AddressFamily.Irda, SocketType.Stream, ProtocolType.IP);

Répondre

0

Il semble que IrDA n'est tout simplement pas pris en charge sur votre appareil cible. Ce n'est pas aussi simple qu'un fichier d'en-tête manquant, il manque le support réel dans le système d'exploitation.

Vous devez comprendre que Windows CE est purement modulaire, donc il n'y a pas de système d'exploitation "standard". L'OEM n'a probablement pas inclus le support IrDA (ce qui est fait en ajoutant la variable SYSGEN_IRDA à la conception du système d'exploitation dans Platform Builder). La seule façon de remédier à cela est d'aller à l'OEM et de leur demander de créer une nouvelle image de système d'exploitation qui l'inclut. Sachez que ce n'est peut-être pas aussi simple que d'ajouter SYSGEN_IRDA pour le fabricant OEM. Ils peuvent également avoir à faire un certain travail OAL pour obtenir le pilote pour soutenir l'émetteur-récepteur IR (le manque de soutien pour ce serait une raison pour omettre le composant de l'OS).