910 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			910 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.Runtime.InteropServices;
 | |
| 
 | |
| namespace Urovo
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Provides access to the urovo i60xx serial handheld terminals.
 | |
|     /// </summary>
 | |
|     public class Device
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// 802.1X authentication mode 
 | |
|         /// </summary>
 | |
|         public enum AuthMode
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// Specifies IEEE 802.11 Open System authentication mode 
 | |
|             /// </summary>
 | |
|             Open,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Specifies IEEE 802.11 Shared Key authentication mode 
 | |
|             /// </summary>
 | |
|             Shared,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Specifies WPA version 1 security for infrastructure mode
 | |
|             /// </summary>
 | |
|             WPA,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Specifies WPA version 1 security (pre shared key) for infrastructure mode 
 | |
|             /// </summary>
 | |
|             WPAPSK,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Specifies WPA version 1 security for ad hoc mode
 | |
|             /// </summary>
 | |
|             WPANone,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Specifies WPA version 2 security for infrastructure mode 
 | |
|             /// </summary>
 | |
|             WPA2,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Specifies WPA version 2 security (pre shared key) for infrastructure mode 
 | |
|             /// </summary>
 | |
|             WPA2PSK
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 802.1X encryption mode 
 | |
|         /// </summary>
 | |
|         public enum EncryptMode
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// No WEP encryption 
 | |
|             /// </summary>
 | |
|             Disabled,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// WEP encryption enabled 
 | |
|             /// </summary>
 | |
|             WEP,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// TKIP encryption enabled  
 | |
|             /// </summary>
 | |
|             TKIP,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// AES encryption enabled 
 | |
|             /// </summary>
 | |
|             AES
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 802.1X extensible authentication protocol type 
 | |
|         /// </summary>
 | |
|         public enum EapType
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// EAP-TLS authentication 
 | |
|             /// </summary>
 | |
|             TLS,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// PEAP authentication 
 | |
|             /// </summary>
 | |
|             PEAP,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// MD5 authentication 
 | |
|             /// </summary>
 | |
|             MD5
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Encapsulates information for a Wireless Local Area Network (WLAN) access point
 | |
|         /// </summary>
 | |
|         [StructLayout(LayoutKind.Sequential)]
 | |
|         public class WlanInfo
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// Specifies a media access control (MAC) address. Each access point has a unique MAC address that is the same as the BSSID. 
 | |
|             /// </summary>
 | |
|             [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
 | |
|             public byte[] MacAddress;
 | |
| 
 | |
|             /// <summary>
 | |
|             /// The length of the Ssid member
 | |
|             /// </summary>
 | |
|             public uint SsidLength;
 | |
| 
 | |
|             /// <summary>
 | |
|             /// The SSID
 | |
|             /// </summary>
 | |
|             [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
 | |
|             public byte[] Ssid;
 | |
| 
 | |
|             /// <summary>
 | |
|             /// The received signal strength indication (RSSI) in dBm
 | |
|             /// </summary>
 | |
|             public int Rssi;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This structure stores a list of WlanInfo structure.
 | |
|         /// </summary>
 | |
|         [StructLayout(LayoutKind.Sequential)]
 | |
|         public class WlanInfoList
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// Number of items in the list of WlanInfo structures.
 | |
|             /// </summary>
 | |
|             public uint count;
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Point to an array of WlanInfo structures.
 | |
|             /// </summary>
 | |
|             public IntPtr pWlanInfo;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// The type of the device information that is being requested
 | |
|         /// </summary>
 | |
|         public enum DeviceInfoType : uint
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// Determines whether a cold boot occurred. The pvParam parameter must point to a int variable that receives 0 if a cold boot occurred, or 1 if a warm boot occured.
 | |
|             /// </summary>
 | |
|             BootType = 1,
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// The triggering mode of the scanner.
 | |
|         /// </summary>
 | |
|         public enum TriggerMode
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// The laser is always on and decoding.
 | |
|             /// </summary>
 | |
|             Normal = 0,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// The laser is on when user press the "scan" key.
 | |
|             /// </summary>
 | |
|             Continuous
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// The type of the sms notification event.
 | |
|         /// </summary>
 | |
|         public enum SmsNotifyType : byte
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// Indicates that new message has been received
 | |
|             /// </summary>
 | |
|             NewSms = 0x10,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Indicates that rssi has been received
 | |
|             /// </summary>
 | |
|             Rssi = 0x11,
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Indicates that the network status has changed
 | |
|             /// </summary>
 | |
|             RegistrationState = 0x12
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power on the gsm module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool EnableGsmModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power off the gsm module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool DisableGsmModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to get the power status of the gsm mudule
 | |
|         /// </summary>
 | |
|         /// <returns>1 when gsm module is power on, 0 when power off, -1 when unknown</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetGsmPowerStatus();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to request that the gsm module return the received signal strength indication (rssi)
 | |
|         /// </summary>
 | |
|         /// <returns>the rssi value. please see the remarks</returns>
 | |
|         /// <remarks>
 | |
|         /// <list type="table">
 | |
|         /// <item>
 | |
|         /// <term>0</term>
 | |
|         /// <description>-113 dBm or less</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>1</term>
 | |
|         /// <description>-111 dBm</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>2..30</term>
 | |
|         /// <description>-109...-53 dBm</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>31</term>
 | |
|         /// <description>-51 dBm or greater</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>99</term>
 | |
|         /// <description>not known or not detectable</description>
 | |
|         /// </item>
 | |
|         /// </list>
 | |
|         /// </remarks>
 | |
| 
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetGsmSignalStrength();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power on the wlan module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool EnableWlanModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power off the wlan module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool DisableWlanModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to get the power status of the wlan module
 | |
|         /// </summary>
 | |
|         /// <returns>1 when wlan module is power on, 0 when power off, -1 when unknown</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetWlanPowerStatus();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to request that the wlan driver return the received signal strength indication (RSSI).
 | |
|         /// </summary>
 | |
|         /// <returns>the RSSI value in dBm. the normal values for the RSSI value are between -10 and -200</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetWlanSignalStrength();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power on the bluetooth module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool EnableBthModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power off the bluetooth module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool DisableBthModule();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// get the power status of the Bluetooth module
 | |
|         /// </summary>
 | |
|         /// <returns>1 when bluetooth module is power on, 0 when power off, -1 when unknown</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetBthPowerStatus();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power on the GPS module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool EnableGpsModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power off the GPS module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool DisableGpsModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// get the power status of the GPS module
 | |
|         /// </summary>
 | |
|         /// <returns>1 when GPS module is power on, 0 when power off, -1 when unknown</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetGpsPowerStatus();
 | |
| 
 | |
|    
 | |
|         /// <summary>
 | |
|         /// This function is used to power on the vibrate module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool EnableVibrateModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power off the vibrate module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool DisableVibrateModule();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to set the backlight value
 | |
|         /// </summary>
 | |
|         /// <param name="level">the backlight value ,range is 1~20</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SetBackLightLevel(int level);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// GetBackLightLevel
 | |
|         /// </summary>
 | |
|         /// <returns>Returns the backlight value. between 1-20. -1 indicates failed.</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetBackLightLevel();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to Check that the device is connected to the gateway
 | |
|         /// </summary>
 | |
|         /// <returns>true when the device has connected to the gateway, false when not connected</returns>
 | |
|         /// <remarks>this function does not distinguish between network type(such as gprs, wireless lan, usb)</remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool CheckNetworkStat();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to establishes a gprs connection
 | |
|         /// </summary>
 | |
|         /// <param name="connName">a ras phone book entry name</param>
 | |
|         /// <param name="errorCode">the Zero indicates success. A nonzero error value, either from the set listed in the RAS header file or ERROR_NOT_ENOUGH_MEMORY, indicates failure.</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool ConnectGprs([MarshalAs(UnmanagedType.LPWStr)]string connName, out uint errorCode);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to check the gprs connection status
 | |
|         /// </summary>
 | |
|         /// <param name="connName">a ras phone book entry name</param>
 | |
|         /// <returns>true when active, false when disactive</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool GetGprsStatus([MarshalAs(UnmanagedType.LPWStr)]string connName);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to terminate the gprs connection
 | |
|         /// </summary>
 | |
|         /// <param name="connName">a ras phone book entry name</param>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern void DisConnectGprs([MarshalAs(UnmanagedType.LPWStr)]string connName);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// creates a new phone-book entry for gprs
 | |
|         /// </summary>
 | |
|         /// <param name="connName">the string that contains an phone entry name</param>
 | |
|         /// <param name="apn">the string that contains an acess point name</param>
 | |
|         /// <param name="phoneNumber">the string that contains a telephone number </param>
 | |
|         /// <param name="userName">the string that contains the user's user name. This string is used to authenticate the user's access to the remote access server.</param>
 | |
|         /// <param name="password">the string that contains the user's password. This string is used to authenticate the user's access to the remote access server.</param>
 | |
|         /// <param name="domain">string that contains the domain on which authentication is to occur. An empty string ("") specifies the domain in which the remote access server is a member. An asterisk specifies the domain stored in the phone book for the entry. </param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool CreateGprsEntry([MarshalAs(UnmanagedType.LPWStr)]string connName, [MarshalAs(UnmanagedType.LPWStr)]string apn, [MarshalAs(UnmanagedType.LPWStr)]string phoneNumber, [MarshalAs(UnmanagedType.LPWStr)]string userName, [MarshalAs(UnmanagedType.LPWStr)]string password, [MarshalAs(UnmanagedType.LPWStr)]string domain);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function provides detailed information for the Wireless NIC as they are cached in the driver .
 | |
|         /// </summary>
 | |
|         /// <param name="currentMac">the media access control (MAC) address of the access point associated with the NIC.</param>
 | |
|         /// <param name="pAvailableList">The list of the SSIDs detected by the NIC.</param>
 | |
|         /// <param name="pPreferredList">The list of preferred wireless zero configurations</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool QueryWlanInformation(byte[] currentMac, WlanInfoList pAvailableList, WlanInfoList pPreferredList);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to free the memory that was allocated by a call to QueryWlanInformation.
 | |
|         /// </summary>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern void FreeWlanInformation();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Add a SSID to the "preferred network list"
 | |
|         /// </summary>
 | |
|         /// <param name="szSSID">the name of wireless network to connect</param>
 | |
|         /// <param name="authMode">802.1x authentication mode</param>
 | |
|         /// <param name="encryptMode">802.1x encryption  mode</param>
 | |
|         /// <param name="szKey">
 | |
|         /// for WEP-key, use 'key-index/key-value' format<br/>
 | |
|         /// 'key-index' is WEP key index(1-4), 'key-value' is WEP key value (40-bit or 104-bit).<br/>
 | |
|         /// 40-bit is either '10-digit hex numbers' (ex: "0x1234567890") or '5-char ASCII string' (ex: "zxcvb")<br/>
 | |
|         /// 104-bit is either '26-digit hex numbers' (ex: "0x12345678901234567890123") or '13-char ASCII string' (ex: "abcdefghijklm")<br/>
 | |
|         /// for TKIP-key, use 'key-value' format. (no key index)<br/>
 | |
|         /// TKIP-key can be 8-63 char ASCII string (ex: "asdfghjk")
 | |
|         /// </param>
 | |
|         /// <param name="eapType">802.1x EAP extension type. both AP and STA will get keys automatically after the successful EAP.</param>
 | |
|         /// <param name="bAdhoc">indicates whether or not connecting to adhoc net</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool AddToWlanPreferredList([MarshalAs(UnmanagedType.LPWStr)]string szSSID, AuthMode authMode, EncryptMode encryptMode, [MarshalAs(UnmanagedType.LPWStr)]string szKey, EapType eapType, [MarshalAs(UnmanagedType.Bool)]bool bAdhoc);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Clear the "preferred networks list".
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         /// <remarks>After a succ call, wireless card will disconnect if it was connected</remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool ResetWlanPreferredList();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Forces the wireless card to reconnect "preferred networks list"
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool RefreshWlanPreferredList();
 | |
| 
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This functions is used to register power notification events.the developer can use these events to handle suspend of the device.
 | |
|         /// </summary>
 | |
|         /// <param name="hSuspendEvent">suspend event</param>
 | |
|         /// <param name="hNotifyEvent">notification event</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         /// <remarks>when the device is about to go into a suspended state, the suspend event is signaled. the developer can do someing, then set the state of the notification event to signaled to allow the device suspend.</remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool RegisterPowerEvent(out IntPtr hSuspendEvent, out IntPtr hNotifyEvent);
 | |
| 
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This functions is used to deregister the events that registered by a call to RegisterPowerEvent.
 | |
|         /// </summary>
 | |
|         /// <param name="hSuspendEvent">suspend event</param>
 | |
|         /// <param name="hNotifyEvent">notification event</param>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern void UnRegisterPowerEvent(IntPtr hSuspendEvent,IntPtr hNotifyEvent);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to get the id of the device
 | |
|         /// </summary>
 | |
|         /// <param name="deviceId">the buffer to store the device id</param>
 | |
|         /// <param name="length">the buffer length in characters, must be large than 14.</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool GetDeviceID(StringBuilder deviceId, uint length);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to receive the value of one of the device infomations
 | |
|         /// </summary>
 | |
|         /// <param name="deviceInfoType">The type of the device information that is being requested</param>
 | |
|         /// <param name="pvParam">Depends on the device information being queried. For more information, see the DeviceInfoType enum</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool GetDeviceInfo(DeviceInfoType deviceInfoType, out int pvParam);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to set the mode of the keyboard.
 | |
|         /// </summary>
 | |
|         /// <param name="uiMode">0,numpad mode; 1,lowercase mode; 2,uppercase mode</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SetKeyboardMode(uint uiMode);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to query the mode of the keyboard.
 | |
|         /// </summary>
 | |
|         /// <returns>0 when numpad mode, 1 when lowercase mode, 2 when uppercase mode</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int GetKeyboardMode();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to enable the system cursor.
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool EnableCursor();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to enable the system cursor.
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool DisableCursor();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to enable the screen auto-lock.  After call this method, the screen will be locked after a specified period of time expires. ther user can poress Fn+5 to unlock the screen.
 | |
|         /// </summary>
 | |
|         /// <param name="idleTime">inteval time, in seconds</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool StartScreenLock(uint idleTime);   //in seconds
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function resets the timer that controls whether or not the screen will auto-lock.
 | |
|         /// </summary>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern void ScreenLockTimerReset();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to enable the screen auto-lock.
 | |
|         /// </summary>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern void StopScreenLock();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to check the screen status
 | |
|         /// </summary>
 | |
|         /// <returns>true when locked, false when not</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool IsScreenLocked();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power on the scanner module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_EnableModule();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to power off the scanner module
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_DisableModule();
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to get the power status of the scanner module
 | |
|         /// </summary>
 | |
|         /// <returns>1 when power on, 0 when power off, -1 when unknown</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int SCA_GetPowerStatus();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to register for scan notification events.
 | |
|         /// </summary>
 | |
|         /// <param name="hMsgQ">Handle to the application's message queue created with CreateMsgQueue</param>
 | |
|         /// <returns>Nonzero indicates success. Zero indicates failure</returns>
 | |
|         /// <remarks>Scan notification events are issued through message queues.<br/>
 | |
|         /// The developer can use ReadMsgQueue to read a single message from the message queue.<br/>
 | |
|         /// The first byte in each message indicates the barcode type. the second byte in each message indicates the length of the barcode.
 | |
|         /// </remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern IntPtr SCA_RegisterNotification(IntPtr hMsgQ);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to stop receiving scan notification events. 
 | |
|         /// </summary>
 | |
|         /// <param name="hNotify">The handle returned from SCA_RegisterNotification</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_UnRegisterNotification(IntPtr hNotify);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to trigger the laser
 | |
|         /// </summary>
 | |
|         /// <param name="state">true for laser on, false for laser off</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_SetTriggerState([MarshalAs(UnmanagedType.Bool)]bool state);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to set the trigger mode
 | |
|         /// </summary>
 | |
|         /// <param name="mode">the supported trigger mode are listed in the TriggerMode enumeration</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         /// <remarks>the setting of the triggermode will be lost when power removed.<br/>
 | |
|         /// This function is only available on symbol scanner.
 | |
|         /// </remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_SetTriggerMode(TriggerMode mode);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This functions is used to send commands to the scanner.
 | |
|         /// </summary>
 | |
|         /// <param name="pParam">a buffer the contain the data of the commands</param>
 | |
|         /// <param name="dwSize">the size of the buffer, in bytes</param>
 | |
|         /// <param name="bPermanent">Specifies whether or not the commands is lost when power down</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_SendParam(byte[] pParam, uint dwSize, [MarshalAs(UnmanagedType.Bool)]bool bPermanent);
 | |
| 
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This functions is used to request parameters of the scanner
 | |
|         /// </summary>
 | |
|         /// <param name="pParam">a buffer the contain the parameters name </param>
 | |
|         /// <param name="dwSize">size of the pParam, in bytes</param>
 | |
|         /// <param name="pParamVal">a buffer that used to receive the parameter value</param>
 | |
|         /// <param name="dwValSize">size of the pParamVal, in bytes</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         /// <remarks>This function is only available on symbol scanner.</remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_RequestParam(byte[] pParam, uint dwSize, byte[] pParamVal, ref uint dwValSize);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to set all parameters to their factory default settings.
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SCA_ResetScannerParams();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to open the sms function of the device
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_Open();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to close the sms function of the device
 | |
|         /// </summary>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern void SMS_Close();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to determine whether the sms function is opened.
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates the sms function is opened. false indicates not</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_IsOpened();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to register for sms notification events.
 | |
|         /// </summary>
 | |
|         /// <param name="hMsgQ">Handle to the application's message queue created with CreateMsgQueue</param>
 | |
|         /// <returns>Nonzero indicates success. Zero indicates failure</returns>
 | |
|         /// <remarks>sms notification events are issued through message queues.<br/>
 | |
|         /// The developer can use ReadMsgQueue to read a single message from the message queue.<br/>
 | |
|         /// The first byte in each message indicates the notify type. the second byte in each message contain the valid data.
 | |
|         /// </remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern IntPtr SMS_RegisterNotification(IntPtr hMsgQ);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to stop receiving the sms notification events.
 | |
|         /// </summary>
 | |
|         /// <param name="hNotify">The handle returned from SMS_UnRegisterNotification</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_UnRegisterNotification(IntPtr hNotify);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to send a SMS message.New applications should call SMS_SendSMSEx instead of this function. 
 | |
|         /// </summary>
 | |
|         /// <param name="szRecipient">The phone number of the recipient</param>
 | |
|         /// <param name="szSmsc">The phone number of the short message service senter, this param can be empty</param>
 | |
|         /// <param name="szMsg">The content of the short message. it can be up to 160 characters (7 bit coded ) or 140 characters (8 bit coded) or 70 characters(unicode)</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_SendSMS([MarshalAs(UnmanagedType.LPWStr)]string szRecipient, [MarshalAs(UnmanagedType.LPWStr)]string szSmsc, [MarshalAs(UnmanagedType.LPWStr)]string szMsg);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to send a SMS message.
 | |
|         /// </summary>
 | |
|         /// <param name="szRecipient">The phone number of the recipient</param>
 | |
|         /// <param name="szSmsc">The phone number of the short message service senter, this param can be empty</param>
 | |
|         /// <param name="szMsg">The content of the short message. it can be up to 160 characters (7 bit coded ) or 140 characters (8 bit coded) or 70 characters(unicode)</param>
 | |
|         /// <param name="wID">The reference number of the enhanced concatenated short message</param>
 | |
|         /// <param name="byTotalNum">The maximum number of short messages in the enhanced concatenated short message.</param>
 | |
|         /// <param name="byCurrentNum">The sequence number of the current short message.</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_SendSMSEx([MarshalAs(UnmanagedType.LPWStr)]string szRecipient, [MarshalAs(UnmanagedType.LPWStr)]string szSmsc, [MarshalAs(UnmanagedType.LPWStr)]string szMsg, ushort wID, byte byTotalNum, byte byCurrentNum);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to Read a SMS messages from preferred store.New applications should call SMS_ReadSMSEx instead of this function. 
 | |
|         /// </summary>
 | |
|         /// <param name="iIndex">Integer type; value in the range of location numbers supported by the associated memory</param>
 | |
|         /// <param name="szRecipient">a buffer to receive the phone number of the recipient</param>
 | |
|         /// <param name="dwRecpLen">the size of the recipient buffer, in characters</param>
 | |
|         /// <param name="szMsg">a buffer to receive the content of the message</param>
 | |
|         /// <param name="dwMsgLen">the size of the message content buffer, in characters</param>
 | |
|         /// <param name="szTime">a buffer to receive the time of the message</param>
 | |
|         /// <param name="dwTimeLen">the size of the time buffer, in characters</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_ReadSMS(int iIndex, StringBuilder szRecipient, uint dwRecpLen, StringBuilder szMsg, uint dwMsgLen, StringBuilder szTime, uint dwTimeLen);
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to Read a SMS messages from preferred store.
 | |
|         /// </summary>
 | |
|         /// <param name="iIndex">Integer type; value in the range of location numbers supported by the associated memory</param>
 | |
|         /// <param name="szRecipient">a buffer to receive the phone number of the recipient</param>
 | |
|         /// <param name="dwRecpLen">the size of the recipient buffer, in characters</param>
 | |
|         /// <param name="szMsg">a buffer to receive the content of the message</param>
 | |
|         /// <param name="dwMsgLen">the size of the message content buffer, in characters</param>
 | |
|         /// <param name="szTime">a buffer to receive the time of the message</param>
 | |
|         /// <param name="dwTimeLen">the size of the time buffer, in characters</param>
 | |
|         /// <param name="pwID">The reference number of the enhanced concatenated short message</param>
 | |
|         /// <param name="pbyTotalNum">The maximum number of short messages in the enhanced concatenated short message.</param>
 | |
|         /// <param name="pbyCurrentNum">The sequence number of the current short message.</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_ReadSMSEx(int iIndex, StringBuilder szRecipient, uint dwRecpLen, StringBuilder szMsg, uint dwMsgLen, StringBuilder szTime, uint dwTimeLen, ref ushort pwID, ref byte pbyTotalNum, ref byte pbyCurrentNum);
 | |
| 
 | |
| 
 | |
|   
 | |
|         /// <summary>
 | |
|         /// This function is used to delete a SMS messages from preferred store.
 | |
|         /// </summary>
 | |
|         /// <param name="iIndex">Integer type; value in the range of location numbers supported by the associated memory</param>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_DeleteSMS(int iIndex);
 | |
| 
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to list SMS messages from preferred store.
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         /// <remarks>sms notification events are issued through message queues.<br/>
 | |
|         /// The first byte in each message indicates the notify type. the second byte in each message contain the sms index.
 | |
|         /// </remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_ListSMS();
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to request the rssi.
 | |
|         /// </summary>
 | |
|         /// <returns>true indicates success, false indicates failure</returns>
 | |
|         /// <remarks>sms notification events are issued through message queues.<br/>
 | |
|         /// The first byte in each message indicates the notify type. the second byte in each message contain the rssi.
 | |
|         /// <list type="table">
 | |
|         /// <item>
 | |
|         /// <term>0</term>
 | |
|         /// <description>-113 dBm or less</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>1</term>
 | |
|         /// <description>-111 dBm</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>2..30</term>
 | |
|         /// <description>-109...-53 dBm</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>31</term>
 | |
|         /// <description>-51 dBm or greater</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>99</term>
 | |
|         /// <description>not known or not detectable</description>
 | |
|         /// </item>
 | |
|         /// </list>
 | |
|         /// </remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         [return: MarshalAs(UnmanagedType.Bool)]
 | |
|         public static extern bool SMS_GetSignalStrength();
 | |
|         
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This function is used to get the network registration status.
 | |
|         /// </summary>
 | |
|         /// <returns>The network registration status ,please see the remarks</returns>
 | |
|         /// <remarks>
 | |
|         /// <list type="table">
 | |
|         /// <item>
 | |
|         /// <term>0</term>
 | |
|         /// <description>Not registered, device is currently not searching for new operator.</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>1</term>
 | |
|         /// <description>Registered to home network</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>2</term>
 | |
|         /// <description>Not registered, but device is currently searching for a new operator.</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>3</term>
 | |
|         /// <description>Registration denied</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>4</term>
 | |
|         /// <description>Unknown</description>
 | |
|         /// </item>
 | |
|         /// <item>
 | |
|         /// <term>5</term>
 | |
|         /// <description>Registered, roaming</description>
 | |
|         /// </item>
 | |
|         /// </list>
 | |
|         /// </remarks>
 | |
|         [DllImport("Device.dll")]
 | |
|         public static extern int SMS_GetRegistrationState();
 | |
| 
 | |
|     }
 | |
| } |