abc WANGPRS ライブラリ マニュアル このマニュアルは、WANGPRS ライブラリの 仕様について記載します。 Ver. 1.
ご注意 ● このソフトウェアおよびマニュアルの、一部または全部を無断で使用、複製することはできません。 ● このソフトウェアおよびマニュアルは、本製品の使用許諾契約書のもとでのみ使用することができます。 ● このソフトウェアおよびマニュアルを運用した結果の影響については、一切の責任を負いかねますのでご了 承ください。 ● このソフトウェアの仕様、およびマニュアルに記載されている事柄は、将来予告なしに変更することがありま す。 ● このマニュアルの著作権はカシオ計算機株式会社に帰属します。 ● 本書中に含まれている画面表示は、実際の画面とは若干異なる場合があります。予めご了承ください。 © 2010 カシオ計算機株式会社 Microsoft, MS, ActiveSync, Active Desktop, Outlook, Windows, Windows NT, および Windows ロゴは、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。Microsoft 社の製品は、OEM 各社に、Microsoft Corporation の 100%出資子会
変更履歴 バージョン 1.00 1.01 1.02 1.03 変更日付 2009.09 2010.07 2010.12 2011.11 2012.01 ページ 1.04 2012.
目次 1. 概要 ··················································································································································································· 1 2. 動作環境 ········································································································································································· 2 3.
4. プログラミング上の注意 ·········································································································································· 60 4.1 GPRS制御手順 ··················································································································································· 60 4.2 SIM制御 ································································································································································· 61 4.
1.
2. 動作環境 WANGPRS ライブラリの動作環境を以下に示します。 対象機種 • DT-5300 • IT-9000 対象 OS • Microsoft WindowsMobile 6.5 開発環境 • Microsoft Visual Studio 2005 + SP1 • Microsoft Visual Studio 2008 + SP1 提供ファイル • WANGPRSLib.h • WANGPRSLib.lib • WANGPRSLib.dll • WANGPRSLibNet.dll (クラスライブラリ) 使用方法 • プログラムソース内に WANGPRSLib.h をインクルードし、WANGPRSLib.lib を使用するライブラリとして 指定してください • WANGPRSLib.dll は本体に内蔵されています。 • WANGPRSLibNet.
3. 機能一覧 3.1 ソフトウェア構成 下図のようなソフトウェア構成になっています。 User Application GPS User Application Management Application Power Setting Status GPS Intermediate Driver Power Control / IM Setting / Carrier Select Radio Strength Check / Status Check etc.
3.2 構造体一覧 3.2.
3.2.
3.2.
3.2.
3.2.
3.2.6 RasDialParams構造体 RAS 接続の呼び出しパラメータを格納します。 [C++] C++で使用する RADIALPARAMS 構造体については下記 MSDN の RASDIALPARAMS 構造体を参照 してください。 http://msdn.microsoft.com/ja-jp/library/aa377238(v=VS.85).
3.2.
3.
WanSmsSendMessage ○ 関数サポート ― 関数未サポート= 関数を呼ぶと未サポートエラーが返ります。 12
3.3.1 WANSetPowerStatus, WanSetPowerStatus WANGPRS モジュールの電源状態を設定します。 [C++] DWORD WANSetPowerStatus( DWORD dwPowerStatus ) [Visual Basic] Public Shared Function WanSetPowerStatus(_ ByVal PowerStatus As Def.PowerStatus_ ) AS Int32 [C#] public static Int32 WanSetPowerStatus( Def.
3.3.2 WANGetPowerStatus, WanGetPowerStatus WAN モジュールの電源状態を取得します。 [C++] DWORD WANGetPowerStatus( DWORD *pPowerStatus ) [Visual Basic] Public Shared Function WanGetPowerStatus(_ ByRef PowerStatus As Def.PowerStatus_ )AS Int32 [C#] public static Int32 WanGetPowerStatus( out Def.
3.3.
3.3.
3.3.5 WANSIMGetPhoneLockedState, WanSimGetPhoneLockedState SIM ロック状態を取得します。 [C++] DWORD WANSIMGetPhoneLockedState( HANDLE hSIM, DWORD* pdwLockState ) [Visual Basic] Public Shared Function WanSimGetPhoneLockedState(_ ByVal SIMHandle As IntPtr,_ ByRef LockState As Def.SimLockStatus _ ) AS Int32 [C#] public static Int32 WanSimGetPhoneLockedState( IntPtr SIMHandle, out Def.SimLockStatus LockState ); パラメータ 本関数は、SIM ロック状態を取得します。 Device Emulatorでは、SIM.iniファイルで指定したSIMロック状態を取得します。詳細は、SIM.
3.3.6 WANSIMGetPINCounter, WanSimGetPINCounter 現在の状態の PIN カウンタを取得します。 [C++] DWORD WANSIMGetPINCounter( HANDLE hSIM, DWORD* pdwCount ) [Visual Basic] Public Shared Function WanSimGetPINCounter(_ ByVal SIMHandle As IntPtr, _ ByRef Count As Int32 _ ) AS Int32 [C#] public static Int32 WanSimGetPINCounter( IntPtr SIMHandle, out Int32 Count ); 解説 本関数は、現在の状態の PIN カウンタを取得します。 PIN カウンタは現在の状態での PIN 入力が行える回数を示しています。PIN カウンタが 0 になった場 合は、PIN ロック状態に移行します。 Device Emulatorでは、SIM.iniファイルで指定したPINカウンタを取得します。詳細は、SIM.
3.3.
戻り値 以下の値を返します。 WAN_ERROR_SUCCES WAN_ERROR_ILLIGAL_HANDLE WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_INCORRECT_PASSWORD WAN_ERROR_FAIL : : : : : : : : 正常終了 不正なハンドル SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー 不正なパスワード その他のエラー 注意 szPassword1 と szPassword2 は SIM ロック状態に依存して、入力する引数が異なります。 ■ PIN コード入力待機状態の場合 SIM ロック状態を解除します。 szPassword1 : PIN コード szPassword2 : 無視 ■ PUK コード入力待機状態の場合 PUK 状態を解除し、PIN コードを新しい PIN コードに置き換えます。 szPassword1 : PUK コード szPassword2
3.3.
WAN_ERROR_SUCCES WAN_ERROR_ILLIGAL_HANDLE WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_INCORRECT_PASSWORD WAN_ERROR_FAIL 22 : : : : : : : : 正常終了 不正なハンドル SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー 不正なパスワード その他のエラー
3.3.
戻り値 以下の値を返します。 WAN_ERROR_SUCCES WAN_ERROR_ILLIGAL_HANDLE WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_INCORRECT_PASSWORD WAN_ERROR_FAIL 24 : : : : : : : : 正常終了 不正なハンドル SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー 不正なパスワード その他のエラー DeviceEmulator では発生しません
3.3.10 WANSIMGetLockingStatus, WanSimGetLockingStatus 指定したファシリティのロック状態を取得します。 [C++] DWORD WANSIMGetLockingStatus ( HANDLE hSIM, DWORD dwFacility, BYTE* szPassword, BOOL* pbEnable ) [Visual Basic] Public Shared Function WanSimGetLockingStatus (_ ByVal SIMHandle As IntPtr, _ ByVal Password As String, _ ByRef Enable As Boolean _ ) AS Int32 [C#] public static Int32 WanSimGetLockingStatus ( IntPtr SIMHandle, string Password, out bool Enable ); 解説 本関数は、指定したファシリティのロック状態を取得します。 Device Emulatorでは、SIM.
WAN_ERROR_SUCCES WAN_ERROR_ILLIGAL_HANDLE WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_FAIL 26 : : : : : : : 正常終了 不正なハンドル SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー その他のエラー DeviceEmulator では発生しません
3.3.11 WANGetModuleInfo, WanGetModuleInfo モジュール情報を取得します。 [C++] DWORD WANGetModuleInfo( struct wan_ModuleInfo *pModuleInfo ); [Visual Basic] Public Shared Function WanGetModuleInfo(_ ByRef pModuleInfo As WanModuleInfo _ ) AS Int32 [C#] public static Int32 WanGetModuleInfo( out WanModuleInfo pModuleInfo ) 解説 本関数は、モジュール情報を取得します。 Device Emulatorでは、Module.iniファイルで指定した値を取得します。詳細は、Module.
3.3.
3.3.13 WANGetIMSI, WanGetImsi 加入者識別子 IMSI(International Mobile Subscriber Identity)を取得します。 [C++] DWORD WANGetIMSI( BYTE* szIMSI, DWORD* pdwLength ); [Visual Basic] Public Shared Function WanGetImsi(_ ByRef IMSI As String _ ) AS Int32 [C#] public static Int32 WanGetImsi( out string IMSI ) 解説 本関数は、加入者識別子 IMSI(International Mobile Subscriber Identity)を取得します。 IMSI は、SIM カードに記録してあります。取得するには、以下の条件が必要です。 - SIM カードを挿入済 - PIN ロックを解除済 Device Emulatorでは、SIM.iniファイルで指定したIMSIを取得します。詳細は、SIM.
WAN_ERROR_BUFFER_ERROR WAN_ERROR_FAIL : バッファエラー : その他のエラー DeviceEmulator では発生しません 30
3.3.14 WANGetTelNum, WanGetTelephoneNumber 電話番号 MSISDN (Mobile Subscriber ISDN Number)を取得します。 [C++] DWORD WANGetTelNum( BYTE* szTelNum, DWORD* pdwLength ); [Visual Basic] Public Shared Function WanGetTelNum(_ ByRef TelNum As String _ ) AS Int32 [C#] public static Int32 WanGetTelNum( out string TelNum ); 解説 本関数は、電話番号 MSISDN(Mobile Subscriber ISDN Number)を取得します。 MSISDN は、SIM カードに記録してあります。取得するには、以下の条件が必要です。 - SIM カードを挿入済 - PIN ロックを解除済 Device Emulatorでは、SIM.iniファイルで指定したMSISDNを取得します。詳細は、SIM.
WAN_ERROR_BUFFER_ERROR WAN_ERROR_FAIL : バッファエラー : その他のエラー DeviceEmulator では発生しません 32
3.3.15 WANGetRSSI, WanGetRssi 受信電波強度 RSSI(Received Signal Strength Indicator)を取得します。 [C++] DWORD WANGetRSSI( struct wan_RSSI *pRSSI ); [Visual Basic] Public Shared Function WanGetRssi(_ ByRef pRSSI As WanRssi _ ) AS Int32 [C#] static Int32 WanGetRssi( out WanRssi pRSSI ); 解説 本関数は、受信電波強度 RSSI(Received Signal Strength Indicator)を取得します。 本関数を続けて使用する場合は、必ず 3 秒以上間隔を空けてください。 受信電波を検出できない場合は、wan_RSSI, WanRssi構造体のnSignalStrengthに WAN_SIGNALSTRENGTH_UNKNOWNを格納します。 Device Emulatorでは、Operator.
3.3.
WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_MORE_OPERATOR WAN_ERROR_FAIL 35 : 操作未許可エラー : 基地局要素数エラー : その他のエラー DeviceEmulator では発生しません
3.3.17 WANSetOperatorConnectionMode, WanSetOperatorConnectionMode オペレータへの接続方法を設定します。 [C++] DWORD WANSetOperatorConnectionMode( DWORD nMode, Struct wan_OperatorInfo *pOperator ) [Visual Basic] Public Shared Function WanSetOperatorConnectionMode(_ ByVal Mode As Def.ConnectionMode, _ ByVal pOperator As WanOperatorInfo_ ) AS Int32 [C#] public static Int32 WanSetOperatorConnectionMode( Def.
補足 自動接続の場合は、SIM カードの情報に基づき、接続を行います。現在、自動接続に設定している場 合は、そのまま維持します。(pOperator(Operator)を無視します) 自動接続(再探索付)の場合は、現在の設定にかかわらず、本関数を実行したタイミングで基地局の 探索を行います。探索後は、自動接続になります。(pOperator(Operator)を無視します) 手動接続は、指定した基地局に接続します。(pOperator(Operator)の szNumName(NumName)に 接続したいオペレータ ID を指定してください) 適応モードは、手動接続試行後に、自動接続に移行します。(pOperator(Operator)の szNumName (NumName)に接続したいオペレータ ID を指定してください) 37
3.3.18 WANGetOperatorConnectionMode, WanGetOperatorConnectionMode オペレータへの接続方法を取得します。 [C++] DWORD WANGetOperatorConnectionMode( DWORD *pnMode ) [Visual Basic] Public Shared Function WanGetOperatorConnectionMode(_ ByRef Mode As Def.ConnectionMode _ ) AS Int32 [C#] public static Int32 WanGetOperatorConnectionMode( out Def.
3.3.19 WANGetCurrentOperator, WanGetCurrentOperator 接続中のオペレータの情報を取得します。 [C++] DWORD WANGetCurrentOperator( struct wan_OperatorInfo* pOperatorInfo, DWORD* pGPRS_Status ); [Visual Basic] Public Shared Function WanGetCurrentOperator(_ ByRef pOperatorInfo As WanOperatorInfo, _ ByRef GPRS_Status As Def.GprsStatus _ ) AS Int32 [C#] public static Int32 WanGetCurrentOperator( out WanOperatorInfo pOperatorInfo, out Def.
戻り値 以下の値を返します。 WAN_ERROR_SUCCES WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_NO_OPERATOR WAN_ERROR_FAIL 40 : : : : : : 正常終了 SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー オペレータ非存在 DeviceEmulator では発生しません : その他のエラー DeviceEmulator では発生しません
3.3.20 WANGetCurrentOperatorID, WanGetCurrentOperatorID 接続中のオペレータの ID 情報を取得します。 [C++] DWORD WANGetCurrentOperator( struct wan_OperatorInfo* pOperatorInfo, DWORD* pGPRS_Status ); [Visual Basic] Public Shared Function WanGetCurrentOperator(_ ByVal pOperatorInfo As WanOperatorInfo, _ ByRef GPRS_Status As Def.GprsStatus _ ) AS Int32 [C#] public static Int32 WanGetCurrentOperator( out WanOperatorInfo pOperatorInfo, out Def.
3.3.
以下の値を返します。 WAN_ERROR_SUCCESS WAN_ERROR_BADPARAM WAN_ERROR_FAIL : 正常終了 : パラメータエラー : その他のエラー RAS 設定 EntryName Modem: Phone number Force Local Device Proptaties Port Setting Baud Rate Data Bits Parity Stop Bits Flow Control Call Option ExtraSetting TCP/IP Setting IP addresss assign NameServer assign Software compression IP Header compression Security Setting Use Data Encryption Use EAP szEntryName *99***1# Checked 115200[bps] mul driver fix-rate 460k[bps] 8[bits] None 1 Hardware +cgdcont=1,ip,szServicePro
3.3.
szNumber 電話番号を指定します。 NULL を指定した場合は、既定の設定”*99***1#”を書き込みます。 szServiceProvidor GPRS 通信プロバイダ名を指定します。 szLoginName GPRS 通信プロバイダへのログイン名を指定します。 NULL を指定した場合は、無指定となります。 szServiceProvidor GPRS 通信プロバイダへのパスワードを指定します。 NULL を指定した場合は、無指定となります。 dwGPRSAuthType GPRS 通信プロバイダの認証方式を指定します。 WAN_RAS_AUTH_DEFAULT : 自動 WAN_RAS_AUTH_PAP : PAP 方式 WAN_RAS_AUTH_CHAP : CHAP 方式 戻り値 以下の値を返します。 WAN_ERROR_SUCCESS WAN_ERROR_BADPARAM WAN_ERROR_FAIL : 正常終了 : パラメータエラー : その他のエラー 45
3.3.23 WANRASConnect, WanRasConnect RAS エントリで GPRS 接続をします。 [C++] DWORD WANRASConnect( LPDWORD LPRASDIALPARAMS DWORD LPVOID LPHRASCONN ) pdwResult, prasDialParam, dwNotifierType, lpvNotifier, pRasConn [Visual Basic] Public Shared Function WanRasConnect(_ ByRef Result As Int32, _ ByVal RasDialParam As RasDialParams, _ ByVal NotifierType As Def.
dwNotifierType 本パラメータは無視します。 lpvNotifier NULL を指定してください。 pRasConn RAS 接続ハンドルを取得します。 戻り値 以下の値を返します。 WAN_ERROR_SUCCES WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_NETWORK_NOT_AVAILABLE WAN_ERROR_FAIL : : : : : : 正常終了 SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー ネットワーク利用不可 DeviceEmulator では発生しません : その他のエラー DeviceEmulator では発生しません 補足 RasDialParams構造体の各メンバを以下のように設定してください。 dwSize 構造体のサイズを指定してください。 szEntryName WANSetRASSetting関数で指定したエントリ名を指定してください。 szP
3.3.24 WANRASDisConnect, WanRasDisconnect GPRS 接続を切断します。 [C++] DWORD WANRASDisConnect( LPDWORD pdwResult, HRASCONN hCon ) [Visual Basic] Public Shared Function WanRasDisConnect(_ ByRef Result As Int32, _ ByVal RASConn As IntPtr _ ) AS Int32 [C#] public static Int32 WanRasDisConnect( out Int32 Result, IntPtr RASConn ); 解説 本関数は、RashangUp 関数を使用して、GPRS 接続を切断します。 詳細は下記 URL を参照してください。 http://msdn.microsoft.com/en-us/library/aa377567(VS.85).
3.3.25 WANRASGetConnectStatus, WanRasGetConnectStatus GPRS 接続セッションのステータスを取得します。 [C++] DWORD WANRASGetConnectStatus( HRASCONN hCon, struct wan_CONNECTSTATUS* pconnstatus ) [Visual Basic] Public Shared Function WanRasGetConnectStatus(_ ByRef pconnstatus As RasConnStatusEx, _ ByVal hCon As IntPtr ) AS Int32 [C#] public static Int32 WanRasGetConnectStatus( out RasConnStatusEx pconnstatus, IntPtr hCon ); 解説 本関数は、RasGetConnectStatus 関数を使用して、GPRS 接続セッションのステータスを取得します。 詳細は下記 URL を参照してください。 http://msdn.microsoft.
3.3.26 WANSmsOpen, WanSmsOpen SMS 操作を行うために初期化を行います。 [C++] DWORD WANSmsOpen( HANDLE* hSMS, DWORD dwFlag, HANDLE* phMessageAvailableEvent ); [Visual Basic] Public Shared Function WanSmsOpen(_ ByRef SMSHandle ByVal Flag ByRef MessageAvailableEvent ) AS Int32 As IntPtr, _ As Def.SmsModes, _ As IntPtr _ [C#] public static Int32 WanSmsOpen( out IntPtr SMSHandle, Def.
WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_BUSY WAN_ERROR_FAIL 51 : : : : : : SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー 他プロセスでハンドルオープン済エラー その他のエラー
3.3.
3.3.
3.3.
3.3.
pstReceiveTime 受信時刻を取得します。 pbBuffer 受信メッセージを格納します。 dwBufferSize 受信するサイズを指定します。 pbProviderSpecificBuffer プロバイダ固有のデータを取得します。本パラメータは無視します。 dwProviderSpecificDataBuffer プロバイダ固有のデータのサイズを指定します。本パラメータは無視します。 pdwBytesRead 受信バイト数を取得します。 戻り値 以下の値を返します。 WAN_ERROR_SUCCES WAN_ERROR_NOSIM WAN_ERROR_MODULE_NOT_READY WAN_ERROR_BADPARAM WAN_ERROR_OPERATION_NOT_ALLOW WAN_ERROR_ILLEGAL_HANDLE WAN_ERROR_NOMAIL WAN_ERROR_BUFFER_ERROR WAN_ERROR_FAIL 56 : : : : : : : : : 正常終了 SIM 未挿入 モジュール未準備(電源 OFF) パラメータエラー 操作未許可エラー 不正な
3.3.
NULL を指定すると、既定の SMSC を使用します。(NULL 推奨) pDestinationAddress wan_SMS_ADDRESS, WanSmsAddress構造体を指定し、送信先アドレスを指定します。 bValidityPeriod メッセージの有効期間を指定します。デフォルトは 1 日です。 0 to 143 : (TP-VP + 1) x 5 minutes (i.e.
59
4. プログラミング上の注意 4.
4.
4.3 GPRS制御 4.3.
4.3.
4.4 SMS制御 4.4.
4.4.
5. DeviceEmulator Device Emulator 上で本ライブラリを正しく動作させるためには、以下のファイルが必要です。 SIM.ini Module.ini Operator.ini OperatorList[n].
5.1 SIM.ini SIM カード情報を保存するファイルです。 SIM.
5.2 Module.ini WANGPRS モジュールの情報を保存するファイルです。 Module.ini のサンプルを以下に示します。 [MODULE] VENDOR="CASIO" NAME="XT75-EMULATE" REVISION="0.0.0.0" [MODULE] モジュール情報セクション VENDOR 製造メーカ名を設定します。(既定値:”CASIO??”) NAME デバイス名を設定します。(既定値:”XT75-EMULATE”) REVISION リビジョンを設定します。(既定値:”0.0.
5.3 Operator.ini 基地局の受信電波強度を保存するファイルです。 Operator.
5.4 OperatorList[n].ini モジュールがオペレータをスキャンする場合に使用する情報を保存するファイルです。 OperatorList[n].
カシオ計算機お問い合わせ窓口 製品に関する最新情報 ●製品サポートサイト(カシオペア・ハンディターミナル) http://casio.