Erik Ramfelt, Thomas Vennstr - PowerPoint PPT Presentation

1 / 58
About This Presentation
Title:

Erik Ramfelt, Thomas Vennstr

Description:

High Speed CSD, dual time speed, can give 28.8 kbits/s. WWAN properties ... command set and can be used for starting applications, warm booting device, etc. ... – PowerPoint PPT presentation

Number of Views:199
Avg rating:3.0/5.0
Slides: 59
Provided by: robyt
Category:

less

Transcript and Presenter's Notes

Title: Erik Ramfelt, Thomas Vennstr


1
(No Transcript)
2
Wireless Wide Area Application Development
Erik Ramfelt, Thomas Vennström, Software
engineer, WWAN Toolkit team
3
Agenda
  • Roaming Scenario
  • Intermec networking technologies / SDKs
  • LAN
  • WLAN
  • WWAN
  • Best development practices
  • Intermec Products
  • QA

4
Roaming use case
  • Delivery pickup driver for Package delivery
    company.
  • Picks up the unit from the docking station
  • The unit has been updated with the latest
    deliveries and software during the night.
  • The unit is also fully charged
  • Driver scans each package in depot
  • The package id is sent to the database through
    WLAN
  • Driver drives away in truck
  • Driver can be contacted through voice calls or
    SMS
  • Driver enters customer site
  • Customer signs of each package
  • Application updates the package statuses on the
    server through the customers WWAN
  • Application downloads new delivery and pickup
    orders
  • Returns to the depot for end of day
  • Unit is put into the docking station for charging
    during the night

5
Roaming scenario
  • Docking station at depot
  • LAN
  • Depot
  • WLAN
  • On the road
  • WWAN
  • Customer site
  • WLAN
  • WWAN

6
LAN Networking
7
LAN properties
  • Free
  • Charges batteries
  • Bandwidth
  • Best speed (10/100MBit)
  • - Not mobile

8
Intermec Technologies / SDKs
  • Low level SDKs
  • NDIS driver utilisation
  • (Ethernet is SYI1)
  • Intermec SDKs
  • NetTools

9
ITC Net Tools
  • Takes the Kernel IO Control calls and wraps them
    up to make them easier to use.
  • BOOL IsEthernetAvailable(void) --
  • Checks if an Ethernet adapter is present on the
    device.
  • int GetCurrentNetworkDevice(void) --
  • Determines the current NDIS device that is active
    on the system.
  • int UnloadNetworkDevice(int nDevice,
    bool bBypassDeviceCheckFALSE) --
  • Unloads the NDIS device specified by the first
    parameter. Normally the library checks to see if
    the device is loaded prior to unloading,
    parameter to allows the caller to bypass that
    check.
  • int LoadNetworkDevice(int nDevice, bool
    bBypassDeviceCheckFALSE) --
  • Loads the NDIS device specified by the first
    parameter. Normally the library checks to see if
    that device or another device is loaded prior to
    loading, parameter to allows the caller to bypass
    that check. Most users SHOULD NOT bypass this
    check.

10
Code snippets
  • i

11
WLAN Networking
12
WLAN properties
  • Fast
  • 11 54 Mbps
  • Cheap
  • - Medium range
  • gt 150 feet (50 meters)
  • - Most often not accessible on customer site
  • - Can drive high infrastructure costs
  • - Limited bandwidth
  • - Security issues (WEP can be hacked within
    minutes)

13
WLAN protocols
  • Supports 802.11a
  • maximum data transfer rate of 54Mbps
  • an operating frequency of 5GHz
  • Supports 802.11b
  • maximum data transfer rate of 11Mbps
  • an operating frequency of 2.4GHz
  • Supports 802.11g
  • maximum data transfer rate of 54Mbps
  • an operating frequency of 2.4GHz

14
WLAN Networking
  • NDIS (?)
  • Loading and unloading of the 802.11b driver is
    performed by the FWL1 device Use
    DeviceIOControl() calls to the driver
  • For loading the NDIS driver for the adapter
  • IOCTL_LOAD_NDIS_MINIPORT
  • For unloading the NDIS driver for the adapter
  • IOCTL_UNLOAD_NDIS_MINIPORT

15
WLAN Networking
  • 80211API.DLL
  • API support provided to alter the Network Name
    (SSID), WEP keys, infrastructure modes, radio
    channel, and power management modes.
  • Contained within 80211API.dll and is present in
    the OS.

16
WLAN Networking 80211API.DLL
  • RadioConnect()
  • Connects to the available radio module
  • RadioDisconnect()
  • Disconnects from the 802.11 radio module
  • No longer connected or associated at all
  • RadioDisassociate()
  • Only disassociates from the current service.
  • Is off only until woken by setting the SSID.
  • GetMac()
  • Gets current MAC address of the 802.11b radio.
  • GetNetworkMode()
  • Gets current network mode (SSID) for the 802.11b
    radio.
  • GetSSID()
  • Gets the desired SSID of the 802.11b radio

17
WLAN Networking Profiles
  • Supports up to four radio configuration profiles.
  • Same as those set by the Wireless Network control
    panel applet.
  • PROFILE1, PROFILE2, PROFILE3, PROFILE4
  • Switch between profiles using the 80211pm.dll
  • Pick a profile to configure
  • Use the GetField() SetField() interface to
    get/modify the radio settings to connect to a
    wireless network.
  • Set this profile as the active profile and then
    signal the API to start the authentication
    process
  • Will currently only prompt for username, the next
    version will prompt for both username and
    password
  • For more information on configuring profiles
    please request the Profile Management document
    from support.

18
WLAN networking 80211PM.DLL
  • You need to make sure that your profile is set as
    the active profile and to signal the security
    supplicant to start authentication.
  • Use SetField to change the ACTIVE_PROFILE to the
    desired profile.
  • Use SetField with CONFIGURE_PROFILE and NULL as
    the SzValue. Using this method has the advantage
    of only forcing a re-authentication if a change
    was made in the profile.
  • CONFIGLET_API SetField(
  • / in / LPCWSTR FieldName, //
    field name
  • / in / LPCWSTR ProfileName,
  • / in / LPCWSTR szValue
    // buffer for returning the value
  • )
  • CONFIGLET_API GetField(
  • / in / LPCWSTR FieldName, //
    field name
  • / in / LPCWSTR ProfileName,
  • / in / DWORD dwMaxChars, //
    number of characters in szValue buffer
  • / out/ LPWSTR szValue,
    // buffer for returning the value
  • / out/ PDWORD pdwValueChars //
    number of characters in returned string including
    null
  • )

19
WLAN Networking - ITC Net Tools
  • Takes the Kernel IO Control calls and wraps them
    up to make them easier to use.
  • BOOL Is80211Available(void) --
  • Checks for the presence of an 802.11 radio in the
    device (this is commonly mistaken for checking
    for presence of an available 802.11 network).
  • int GetCurrentNetworkDevice(void) --
  • Determines the current NDIS device that is active
    on the system.
  • int LoadNetworkDevice(int nDevice, bool
    bBypassDeviceCheckFALSE) --
  • Loads the NDIS device specified by the first
    parameter. Normally the library checks to see if
    that device or another device is loaded prior to
    loading, parameter to allows the caller to bypass
    that check. Most users SHOULD NOT bypass this
    check.
  • int UnloadNetworkDevice(int nDevice,
    bool bBypassDeviceCheckFALSE) --
  • Unloads the NDIS device specified by the first
    parameter. Normally the library checks to see if
    the device is loaded prior to unloading,
    parameter to allows the caller to bypass that
    check.

20
Code snippets
  • ltpower on/off WLAN drivergt

21
Code snippets
  • ltswitching between profilesgt

22
WWAN Networking
23
WWAN properties
  • Circuit Switched (GSM / CDMA)
  • Long range
  • Rarely poor bandwidth
  • Higher priority than Packet Switched
  • GSM before GPRS
  • - Expensive
  • Billed on length of call
  • - Slow
  • 14.4 kbps
  • High Speed CSD, dual time speed, can give 28.8
    kbits/s

24
WWAN properties
  • Packet Switched (GPRS / 1xRTT)
  • Long range
  • Reasonable cost
  • Billed on volume of data, not length of call
  • Moderate fast
  • 30-40kbits/s
  • /- Always connected
  • - Intermittent coverage
  • - Bandwidth Issues

25
Next generation
  • 3G UMTS/W-CDMA
  • /- Fallback to GPRS
  • May run GPRS at all times
  • - Complete new infrastructure
  • New technology
  • Transmit voice and data at the same time
  • High transfer rates
  • 3Mbps
  • EDGE - Poor mans 3G (2.75G)
  • Minor changes to current infrastructure
  • High transfer rates
  • 384 kbps (meets 3G standards)

26
WWAN Messaging
  • SMS
  • Store and forward feature
  • Up to 160 characters
  • Received whenever the radio is powered on and
    within coverage
  • Billed for each message, not data size
  • SMS works in very low signal coverage
  • Can be used to send commands to applications

27
WWAN Costs
  • Example of Standard tariffs
  • Ca 10 first MB 0.01 / Kb
    GPRS H
  • Ca 2.5 per additional MB 0.0025 / Kb GPRS
    L
  • GSM ca 1 per MB 0.001 / Kb GSM
    ISDN
  • GSM ISDN connecting 0.01
  • GSM Asynch connecting 0.035
  • (assuming no min charge and per second billing)

28
Intermec Technologies / SDKs
  • WWAN Toolkit
  • Provides easy functionality for managing the
    radio
  • Supports all WWAN radios installed on Intermec
    devices
  • Rapid application library to get applications
    connected
  • WWAN Toolkit NextGen
  • Network switching API, for automatic switching
    between
  • LAN
  • WLAN
  • WWAN (PSD and CSD)

29
Why use the WWAN Toolkit?
  • Easy to use
  • Rapid application development
  • One API
  • No need to learn complex AT command sets for each
    radio or any other APIs.
  • Cross platform
  • Works on all WWAN enabled Intermec devices
  • Backward compability
  • Your application that was written two years ago
    will still work on a new Intermec WWAN Device
  • Multiple languages
  • C, Java, VB.NET and C
  • Native OS/Device limitations
  • Work arounds for OS and device limitations
  • Full control
  • Simple to use yet fully fledged API

30
WWAN Toolkit features
  • Radio power on/off and modem initialization
  • Reliably start up and shut down radio
  • Network information
  • Signal strength, Operator name
  • Available networks, Network Selection
  • Data Connections
  • Configure, establish and monitor dial-up
    networking connections
  • GSM, GPRS, CDMA and/or 1xRTT
  • Text Messages (SMS)
  • Read, send, delete text messages
  • Voice calls

31
Code snippets
  • Power on

32
Make a GPRS connection
33
Make voice call (WWAN Toolkit)
34
Make voice call (TAPI)
35
Send SMS (WWAN Toolkit)
36
Send SMS (TAPI)
37
Connectivity Features (NextGen)
  • Simple API, 3 methods bare minimum
  • Minimal effort for establishing connections
  • Automatic/manual switching between all specified
    network
  • LAN
  • WLAN
  • WWAN
  • Configurable through XML files
  • No need to re-compile for new network parameters

38
Code snippets
  • Switch

39
Best practices
40
Design considerations
  • Map out the characteristics of the application
    and its data handling
  • Consider the infrastructure
  • Which network should be used where and when?
  • Return on investment on network installation
  • What is the typical use case scenario?
  • Where is the device stored during day and night?
  • Does the server allow IP switching in data
    transfer?
  • Need to spoof IP, develop or buy current products?

41
Design considerations
  • Develop client-server solutions
  • If server has data to deliver, it can communicate
    with the client in these ways
  • Call the device from a certain number.
  • Client will recognize the phone number and ignore
    the voice call and start to connect
  • Send a SMS with a command
  • Client will start to connect when it sees a
    certain SMS message

42
Network differences
  • WWAN compared to LAN WLAN
  • Relatively unreliable
  • Conditions can change at any time
  • Mobile users moving in and out of coverage
  • Low bandwidth
  • Best real-world performance roughly same as
    land-line modem
  • High latency (600 ms)
  • Also variable latency jitter
  • Data transmission costs money

43
Loss of connectivity
  • On GPRS, "dial-up" connection is usually not
    dropped when you lose coverage
  • "Dial-up" connection remains "open" since you may
    come back into coverage soon (e.g. going through
    tunnel)
  • Won't force TCP/IP connections to close just
    because you lose coverage for a short time
  • Everything usually starts working when you regain
    coverage
  • Becomes less certain as time spent out of
    coverage increases
  • Network may abort your connection from it's end
    if it does not see device for extended period
  • You are not in coverage so you cannot be notified
  • When you regain coverage, your connection may
    mysteriously fail to work even though signal is
    good
  • No easy way to detect this by interrogating radio

44
Detecting loss of connectivity
  • Interrogate radios for signal strength
  • No signal implies that data won't flow
  • But good signal does not necessarily imply it
    will
  • End-to-end check is most reliable way
  • TCP does this for you, must do it yourself for
    UDP
  • Appears as errors timeouts from Winsock and
    higher level libraries such as FTP, Web Service
  • Should check these in any networking app
  • Often neglected in these days of reliable LAN and
    WLAN communication
  • Periodic ping of known good address is often used
  • One side-effect that is resets idle timeouts in
    network
  • Can cost money

45
Regaining connectivity
  • What if you are in good coverage but data isn't
    flowing?
  • Actions you can take are (least drastic first!)
  • Simply wait and retry later
  • Connectivity may be regained soon, especially if
    you have been out of coverage
  • Drop "dial-up" connection
  • Wait 10-20 seconds then reconnect fixes most
    problems
  • Drop connection and reset radio (power cycle)
  • Most drastic action, but almost always works for
    temporary problems
  • Can take a long time
  • Can be combined with signal strength checks to
    avoid unnecessary connection attempts that will
    fail

46
Improving User Experience
  • Develop "occasionally connected" apps
  • Allow user to continue working when disconnected
  • Synchronize with server when possible
  • Consider offline storage such as database or
    transaction queues
  • Envision someone yanking the network cable in and
    out
  • Perform data communication in background
  • Implement recovery as described earlier without
    asking user for guidance
  • Work asynchronously
  • Don't lock up interface waiting for response to
    network requests

47
Optimizing Data
  • Don't send data that isn't needed in real-time
  • Send later when connected to cheaper network
  • Prioritise data
  • Send important data first
  • Compress data before sending
  • Avoid multiple round-trips
  • Latency up to 600 ms for acknowledges gives poor
    speed
  • Aim to fill packets, send data in large chunks
  • Different packet size (TCPIP) may have an
    significant impact

48
Improving battery life
  • Suspend
  • 802.11 will cause all connection to be lost and
    will require re-authentication if security is
    being used
  • WWAN will not cause any of the above, events can
    still be received and will wake up the terminal
    from the suspend state.
  • Settings
  • Set Power-gtBattery to Max battery runtime
  • Set power to turn off device if not used for 1
    minute
  • Power
  • Leaving both radios powered on will not drain
    much battery life and will dramatically speed up
    the connection of the radio.
  • WWAN radio consumes less than 10 extra
  • Note There is a difference between on and
    connected

49
Intermec Products
50
Products
  • Intermec Connection Manager (ICM)
  • Application that enables manual and automatic
    roaming between networks
  • WWAN Communicator
  • Demonstration tool for WWAN
  • Core
  • Intermec application that lets you configure and
    manage your radios
  • NDIS Tray
  • Utility to switch between WLAN and LAN networks.
  • Has FTP server built in

51
Intermec Connection Manager
52
ICM - Features
  • Utility designed to run in background, used in
    conjunction with a business application.
  • Monitors available connection options, selecting
    connection based on predefined priorities
  • Provides switching between mediums so that the
    business application simply connects to host
  • Configurable options through user interface or
    programmatic
  • Effective power management (consumes lt 10
    additional battery when searching for 802.11b
    connection once every minute).

53
ICM - Configuration
  • Ethernet
  • DHCP / Static
  • 802.11
  • SSID
  • WEP (through WLAN profiles)
  • Security Credentials (through WLAN profiles)
  • Wireless Wide-Area Network
  • APN (if applicable)
  • Windows Mobile Dialling Configuration
  • Avalanche (if applicable)
  • Licensed Console

54
Core
  • Intermec application that lets you configure and
    manage your radios.
  • Preinstalled to every operating system version
  • Modules available for each radio
  • Displays general and detailed information
  • 802.11, Ethernet, BT, and WWAN
  • Great test tool for network monitoring

55
WWAN Communicator
  • Demonstration tool for the WWAN Toolkit
  • Provides all features like a normal cell phone
  • Voice calls
  • Send and receive messages
  • Establish data connections
  • Source code included in SDK

56
NDIS Tray
  • Utility application that is pre-installed on all
    devices
  • Manual switching between
  • LAN
  • WLAN
  • No network
  • Comes with a FTP server
  • FTP server has an extended command set and can be
    used for starting applications, warm booting
    device, etc.

57
Q A
58
Contact information
  • http//www.intermec.com/developersupport
  • Contains demos, software versions, and downloads
    mentioned in presentation.
  • http//www.intermec.com/idl
  • Direct access to the registration page for the
    Intermec Developers Library (IDL)
  • http//www.microsoft.com/windowsmobile/downloads/d
    efault.mspx
  • Download location for the latest version of
    Active Sync.
  • Developer Downloads Embedded Tools 3.0 4.0, VS
    .Net 2003, .NET CF, ASP.NET Controls, SQL CE, MS
    Power Toys for Windows Mobile, 2003 2002 MS
    SDKs, and more.
  • Frontline support 1-800-755-5505 or Knowledge
    Central
  • http//intermec.custhelp.com/cgi-bin/intermec.cfg/
    php/enduser/home.php
  • First stop for basic mobile questions
Write a Comment
User Comments (0)
About PowerShow.com