Wednesday, 24 September 2008

Attending ESS'08 and Hosting half-day Windows Embedded Workshops


Just a quick note to invite you to come visit me on the Direct Insight stand at next week's Embedded Systems Show at the NEC. Stand 449 October 1st and 2nd. You can get your free exhibition pass here.

Also in conjunction with Microsoft and Silica, Direct Insight will be hosting half-day Windows Embedded Workshops. These 100% technical workshops will take you through the process of building and deploying with both Windows Embedded CE and Windows XP Embedded.
This is a unique hands-on opportunity to check out how Windows Embedded stacks up against Linux, and the various RTOS solutions out there. Places are strictly limited, so please visit the link below to secure your place.
http://www.directinsight.co.uk/services/windows-embedded-workshop.html

Hope to see you there.
-Nigel

PS. At the show, we're also introducing a new, high performance, low-power Windows CE module, at a ground-breaking price. See this, and our other solutions for platform-based design on Stand 449 at ESS'08 (October 1st & 2nd at the NEC)

Friday, 19 September 2008

Register for Microsoft® Tech•Ed EMEA 2008 Developers before 26th September and save €300

On behalf of Microsoft I would like to invite you to take advantage of the early bird discount and register for Microsoft® Tech·Ed EMEA 2008 Developers (10 - 14 November, Barcelona, Spain) before 26th September 2008.

As Microsoft will no longer be hosting the Mobile and Embedded DevCon (MEDC) there will be a significantly increased Windows® Embedded presence at this event. This will be focused around 2 key areas:
· A dedicated Windows Embedded track
· Increased Windows Embedded presence in the exhibition hall - on the Ask the Experts Pavilion and dedicated Windows Embedded Partner Zone

Attend to:
· Enhance your technical skills in the development and implementation of Windows Embedded operating systems
· Network with both the Windows Embedded and wider community
· Engage with the largest audience of Microsoft Technology Specialists that come together across EMEA
· Visit the Windows Embedded exhibition space – the exhibition hall is at the heart of this event. A new layout design will promote networking across the hall, offering presentations, informal Chalk and Talk, comfortable social areas and continuous community activities

Don’t forget to register before 26th September and save €300!

Tech·Ed EMEA 2008 Developers is the Microsoft premier technical education conference just for developers. For five days, you and more than 4,000 of your peers have countless opportunities to explore about the latest cutting-edge technologies from Microsoft. For general event information please visit www.microsoft.com/emea/teched2008/developer/

>> Nigel

Friday, 5 September 2008

Windows® Embedded CE 6.0 Fundamentals

Great book available called "Windows® Embedded CE 6.0 Fundamentals"

Synopsis
Delve into the fundamental tools and techniques for Windows Embedded CE—and get ready to deliver the next innovation in powered devices. Covering the newest version of the technology—Windows Embedded CE R2—and led by two embedded-development experts, you'll get both the hands-on instruction and pragmatic reference you need to begin building a range of small footprint, smart, connected, and service-oriented devices. This book examines the architecture, built-in programming tools, drivers, and build process, and shows how to take advantage of the Windows Embedded CE 6.0 Software Development Kit (SDK). Whether new to programming with Windows and Windows Embedded, or already working with the platform, you'll find the best practices and real-world guidance you need to get productive quickly.


Delve into the fundamental tools and techniques for Windows Embedded CE—and get ready to deliver the next innovation in powered devices. Covering the newest version of the technology—Windows Embedded CE R2—and led by two embedded-development experts, you'll get both the hands-on instruction and pragmatic reference you need to begin building a range of small footprint, smart, connected, and service-oriented devices. This book examines the architecture, built-in programming tools, drivers, and build process, and shows how to take advantage of the Windows Embedded CE 6.0 Software Development Kit (SDK). Whether new to programming with Windows and Windows Embedded, or already working with the platform, you'll find the best practices and real-world guidance you need to get productive quickly.


To find out where to buy follow this Link to the correct vendor for your country.

> Nigel

Tuesday, 5 August 2008

Stopping home screen on Smartphone and other backlight tricks

If your smartphone application displays information to a user without any user input you may wish to stop the home screen from being shown, or the auto lock from kicking in by reseting the idle timer using:

// prevent home screen from being shown, lock and idle timers
SHIdleTimerReset();


You can force the backlight on and reset the other idle timers using:

SystemIdleTimerReset();
SetSystemPowerState(NULL, POWER_STATE_ON, POWER_FORCE);

The latter works also on PocketPC and Windows CE

Monday, 12 May 2008

Interesting Article

Was directed at this article to read and thought it was worth sharing.

http://www.embedded.com/columns/guest/207402542

Interesting views on one of Windows Embedded main competitor.
I’ll let everybody make up their own minds.

>> Nigel

Thursday, 10 April 2008

Hooking keyboard events in Windows CE/PPC

Hi,

I saw someone had asked about this on a newsgroup. Hooking keyboard events is where we can insert some code into GWES to see any keyboard presses that are happening in the system.

This is a useful process if you want to record a series of keypresses from a user which may span over a number of applications. Once recorded you can play back the keypresses by inserting them into GWES again using Keybd_event.


Note in Windows CE you can't hook mouse messages like in XP.

Heres the code:

// keyboardHook.cpp : Defines the entry point for the application.
//
#include "stdafx.h"

#define WH_KEYBOARD_LL 20

extern "C" BOOL WINAPI UnhookWindowsHookEx(HHOOK hhk);
extern "C" LRESULT WINAPI CallNextHookEx(HHOOK hhk, int nCode, WPARAM wParam,LPARAM lParam);
extern "C" BOOL RegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk);
typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
extern "C" HHOOK WINAPI SetWindowsHookExW(int idHook,HOOKPROC lpfn,HINSTANCE hmod,DWORD dwThreadId);

#define SetWindowsHookEx SetWindowsHookExW

struct HHOOK__ * hKeyHook=NULL;

typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode; // virtual key code
DWORD scanCode; // scan code DWORD flags;
DWORD flags; // unused
DWORD time; // time stamp for this message
DWORD dwExtraInfo; // extra info from the driver or keybd_event
} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;

//Low level Keyboard Hook Proc
__declspec(dllexport) LRESULT CALLBACK TabHook( int code, WPARAM wParam, LPARAM lParam )
{
KBDLLHOOKSTRUCT* v_kbdllData = (KBDLLHOOKSTRUCT*)lParam;
RETAILMSG(1, (TEXT("nCode = %d, wParam = %d\r\n"), code, wParam));
RETAILMSG(1, (TEXT("vkCode = %d, scan = %d, time = %d\r\n"),
v_kbdllData->vkCode, v_kbdllData->scanCode, v_kbdllData->time));
return CallNextHookEx(hKeyHook,code,wParam, lParam);
}

// This is a simple message loop that will be used
// to block while we are logging keys. It does not
// perform any real task ...

void MsgLoop()
{
MSG message;
while (GetMessage(&message,NULL,0,0))
{
TranslateMessage( &message );
DispatchMessage( &message );
}
}

HHOOK InstallHook()
{
HINSTANCE hExe = GetModuleHandle(NULL);
return SetWindowsHookEx (WH_KEYBOARD_LL,TabHook, hExe, NULL);
}

///////////////////////////////////////////////////////////////////////////////
//
// WinMain - Test Entry point
//
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
hKeyHook = InstallHook();
MsgLoop();
UnhookWindowsHookEx(hKeyHook);
return 1;
}

Saturday, 29 March 2008

Bluetooth signal strength

On XP it seems that most of the BT stacks support the ability to sense the signal strength when communicating with a device, apart from when using Java-ME and the Microsoft Stack on XP, for instance

BlueSoleil

BLUETOOTH_DEVICE_INFO_EX
{
..
CHAR cSignalStrength;
};

Toshiba

Using the BtGetRSSI command you can get the difference (db value) of a received signal index on the strength of "Golden Receive Power Range"

BroadCom
Using the GetConnectionStats() you can get the signal strength, from -128 to 127

Microsoft (Windows CE/Mobile)
Windows Mobile version of the MS stack supports signal strength through the BthReadRSSI, again a range of -128 to 128, but i can't find the same in the XP version, see http://msdn2.microsoft.com/en-us/library/aa362927(VS.85).aspx for the APIs.

There is a BluetoothIsConnectable() which returns a TRUE/FALSE but nothing else, the bluetoothapis.h which contains all the structures doesn't seem to have anything in it either, such as RSSI, strength or even signal so i don't think it is supported at least by any documented API.

Anyone else know if you can get the RSSI signal strength using the MS BT stack on XP?