Wedge software - Windows Mobile Development and Hacking General

I need some code to take occasional data from an external spp bluetooth device (eg rfid scanner) and stuff it into the active window as pseudo keystrokes. Doesn't matter what main application is running, this software will run in the background processing anything that comes in from the bluetooth port. Can anybody point me in the right direction?

Check out the articles on http://www.teksoftco.com/forum/viewforum.php?f=3
If you have further questions do not hesitate to start a new topic
Regards,
Raul

Related

Bluetooth Hands-free (again): understanding the architecture

I'm hoping to start discussion on the internals of the bluetooth stack on the Blue Angel and possibly other devices!
There's two high-level elements to this:
- The Microsoft stuff
- The Widcomm (Broadcom) stuff
Knowing what software managed what part of the process would be useful . I'm starting to piece it together, but I might be wrong...
The headset (HS) sends commands to the PocketPC (known as an AG - audio gateway) using simple AT commands. For example, pushing the button twice on my Nokia HDW-3 causes last number redial, so I'm guessing that the HS sends AT+BLDN and the bluetooth app acts on this appropriately.
AT+BVRA is the command that I think we're interested in - this enables /disables voice dialing.
When I push and hold the HS button, the notification icon changes in the top bar, and it appears that I get noise through the headset (tho not the PocketPC output!), and that the mic is connected too (tho the phone mic, NOT the pocketPC mic - tried recording using voice notes, and didn't get anywhere from the headet). This indicates that the AT+BVRA is being received and processed, but no application is being kicked off.
I *think* that the hfpui.exe program is responsible for the icon, but I might be wrong. I've had a quick peek through the binary, and there's a lot of text in there which looks familiar, but it's a pain in the neck reading wide characters
What is so frustrating is that the push for voice dial is being recognised, but nothing is being kicked off.
The MS bluetooth registry settings (HKLM\SW\Microsoft\Bluetooth) has two interesting entries, both of which reference btagsvc.dll.
There's a load of stuff in HKLM\SW\Widcomm. Most interesting is probably the Plugin\Handsfree area, which autoloads \\windows\hfpui.exe, and provides a controlpanel (internal to the BT Manager) which is hfpcontrolpanel.dll. I assume this is
BTAGSVC has an entry in the HKLM\services key, as does "HandsFree". HandsFree uses the HandsFree_DLL.dll, apparently...
There *must* be a way to correct this. My guess is that we can either change something in the BTHFP dll, or the HFPUI, or one of the apps, we will be in good stead to move forward.
Anyone got any Cunning Ideas how to take this forward, or any more info on the workings of the stack to share?
Just had a resource editor on HFPUI.exe
It contains the notification icons for the top bar. Seems to point that it is responsible for processing the commands - or is that a wrong assumption?
Understand Architecture
I hope this goes, I cant be much help but am very interested. Keep it up

PocketPC as MIDI controller?

This may be a stupid question, but is it possible to send real-time MIDI data over the USB link between PPC and computer (or via a wifi SD card for that matter)?
I've been playing with this Clanger Theremin app that turns your PPC touchscreen into a musical instrument of sorts - movement on the X axis changes pitch, movement on the Y axis changes volume.
It would be great if the entire touchscreen could be set up to send changes in MIDI values to a program running on the PC, also using the X and Y axes. Once MIDI data can be transferred, you could play the tuba via your PPC, or scratch virtual records like a dj, or really do just about anything.
There's already a program in development that allows you to do this with a Wacom drawing tablet (http://www.livelab.dk/tablet2midi.php), but a drawing tablet is already set up via USB to be a human input device or whatever you call it, so I wonder if the link between tablet and computer is at all similar to that between PPC and computer.
So would something like this be possible? Or is this just a pipe dream?
Wouldn't you just create a server on the desktop and get the client to connect to it through the Activesync network connection or bluetooth personal area network? The server would then have to behave like a MIDI device which might be the hard part. Would the PocketPC client produce MIDI events or send simpler x/y coordinates to the server which would then generate MIDI events?
this is a bloody excellent idea!!!
i can never have enough x/y pads!!!!!
anyone fancy a crack at it?
it should be pretty simple!
should have the option that when its touched it activates a switch (simple NOTE ON when pressed/ NOTE OFF when released). ive got annoyed with many xy pads for that reason!
i have a friend who may find this pretty easy.. sadly my code skills in that area are lacking severely.
i suspect he is too busy though..
i am quite liking the idea of the server/client method, with the ppc sending the data to a server that then converts that to midi data...
perhaps even a clever card export style driver emulation.. (only requires a pc driver instead of server program)
assignable hardware buttons!! great for activating effects..
anyone got any ideas?
edit: had another idea
great, i'm glad somebody else likes this idea! I guess the question is - how do you get a project like this started? I also don't have the coding experience that would allow me to make this myself.
Could I (or we, if there are more people that want this made) offer some sort of bounty for a finished app? Is there any system in place online for doing something like this? Something where you give a list of necessary specs and then post a reward for delivering a working app?
I certainly couldn't offer heaps, but if a bunch of people got together who wanted this and chipped in a bit of money each, perhaps it might motivate somebody to spend some time creating the thing. Programmers: how much would it take to convince you to spend some time creating something like this?
Or, if any experienced coders out there have a couple of ideas on how to do this and could point me in the right direction, perhaps I could do some research and eventually build this myself. As it is right now, I don't have a clue as to how to begin - can you send data of any kind down the USB link? Or over bluetooth, or wifi? What language should be used to program this?
Otherwise, if you're already interested in making a pocketpc into an x/y controller, and have the skills to do it, I can tell you that it'll be greatly appreciated.. Maybe I should post this topic outside of the Magician forum, as something like this could be useful for anybody with a pocketpc that has a touchscreen.
Anyway, I really hope that this can someday happen, it would be wonderful if it could. Perhaps focusing on MIDI data is a bad idea - if the touchscreen could be used to control anything on the PC then it might appeal to a wider range of users (and programmers). Imagine using your touchscreen via bluetooth to control Winamp from across the room, just moving your thumb up or down to raise or lower volume. I'm sure there are a huge variety of other uses that could come in handy as well. Assignable hardware buttons would be amazing...
There is already plenty of software that allows you to control your PC via your PPC (pocket VLC, winamp remote etc etc etc) but this doesnt neccesarily help matters.
If you have to have the controller on the screen of the host machine... you may as well be using a damn mouse.
I suggest a complete midi send system that will make the ppc work as if it is a real MIDI controller. This way you can use it as a system of control for elements that wont be controlled by devices you can have on-screen.
Im going to look into this later, im just about to do some important house related things
keep the ideas coming

Someone to write a program

I know this is for programmers only but since I am looking for a programmer I figured it would be okay for me to post this here.
MODS - If it belongs someone else then please feel free to move it...
I own a HTC Universal (Cingular 8125) and I am also a diver. For a few years I looked at various Palm based dive logging software (when I had a Palm) but never bought one because I like to write longish descriptions of the dive and didn't want to do that in Graffiti or bring both a Palm and a portable keyboard on a dive trip. The desire to minimize electronic gadgets (and weight) is also why I never bring a laptop along with me. However, with the 8125 I have one device that I can bring with that lets me watch movies on the plane, listen to music on the beach, check my e-mail if I find find a wifi hotspot, and has the full keyboard and can use as a phone since it is GSM!
That being said, most dive comptures have the capacity to download information about the dive (depth, temperature, etc) to a computer. This information is very useful when you combine it with a log since it allows you to see what is called your dive profile and if you have the right logging software you can then combie this profile with your comments and create a really neat electronic log book.
However, the logging software for my computer, and I believe most computers, will not download to my device to any device running WM5. I had pretty much given up and figured I would have to wait awhile until these silly companies ralized there was a demand for WM5 and hopfully created software so you could download your computer information directly into your phone. However I recently found this device http://reefnet.ca/products/sensus/ which is very different. It is more of a logger than a dive comuter in that you do not interact with it during the dive and it does not give you any guidance about dive limits. One of the biggest things that makes it different is that they, "realizes the benefits of publishing the technical details of its data recording devices. If you're a software developer, dive organization, or just curious, you may download our free Developer's Guides. In them we carefully detail everything you need to know to be able to download data from Sensus recorders. The Sensus Ultra Developer's Guide is AVAILABLE NOW!"
So what I was thinking is that someone might be able to create software for WM5 so that we could download the information directly into a Pocket PC. This could then perhaps be combined with a program like this
http://blackwave.com/products/DiveAssistantPocketPC/index.aspx or this http://www.dreamdives.org/en/products/products1.htm to create the full package.
I think this would be a killer app that could make someone a few bucks. All I would ask for would be a free copy. I will even do the testing for free. the only big hurdle that I know of, and why they currently do not support download to WM5 is that the downloader uses serial ports.
Here is the link to their developers guide
https://secure.reefnet.ca/downloads/public/doc/sensus_devguide_ultra.pdf
If any one has any questions please feel free to PM or e-mail directly at bigcatdiving at gmail dot com
dcdivenut: why do they sell Palm software? What does the Palm software do? Presumably it doesn't link directly to the logger? Although, IIRC, the Palm does have a kind of serial port built in.
Your biggest hurdle here clearly is the physical lack of a serial port.
Basically you've got a logger, and want to connect it to the phone? Converting the data into a universal format should be straight forward, most logging is done in clear and easy to manipulate text.
So, how do you get around the hardware limitation? You could wire together a serial to IRDA converter and blast the logs directly into the infra red port. But is that the kind of thing you want or need?
V
Or you could use a bluetooth to serial converter. It may actually be more stable and easier to use than IrDA.
J-Man5
vijay555 said:
dcdivenut: why do they sell Palm software? What does the Palm software do? Presumably it doesn't link directly to the logger? Although, IIRC, the Palm does have a kind of serial port built in.
Your biggest hurdle here clearly is the physical lack of a serial port.
Basically you've got a logger, and want to connect it to the phone? Converting the data into a universal format should be straight forward, most logging is done in clear and easy to manipulate text.
So, how do you get around the hardware limitation? You could wire together a serial to IRDA converter and blast the logs directly into the infra red port. But is that the kind of thing you want or need?
V
Click to expand...
Click to collapse
I !think! the palm software allows you to download directly to the Palm via the serial port.
As far as an infrared port to get the data into the PC that is more or less exactly what I am looking for. Here is a long discussion on a scuba forum that involves a programmer from the company that might gove some additional information.
http://scubaboard.com/showthread.php?t=140213&highlight=sensus+ultra
I guess there are two challenges
1. Getting the data from the logger to the device either via some sort of serial/USB converter or serial/IRDA converter. I found this out there which would "seem" to work http://www.usbgear.com/IR-210S.html
2. Then having a program to take that data and with a decent GUI turn it into something displayable a la the palm and windows software on their website. Then possibly taking it a step further and integrating that into "dive log" software so that in addition to the profile information gathered from the logger you can record where you were, who you were with, what you saw, what equipment you had, etc. a la the blackwave or sharkpoint software.
Why not try styletap to run the palm software on the pocketpc windows mobile?
J-Man5

Remote PDA Management Software

Hi all,
I joined the forum because I'm looking to design a PC application using Visual Studio 2005 that will connect to most phones and allow you to send/receive SMS, manage contacts, perhaps even use any onboard camera as a webcam.
I'm an experienced programmer, but know little about the architecture on the Andes, which is my testbed.
Basically, all I need to get started on the basics is how to communicate with the device using a serial connection (Not in debug mode though!), or the best way to accomplish this if not bluetooth.
Any/all help appreciated. I'm not looking for code just a procedure to establish a serial link that'll allow me to issue commands to the device whilst its in its usual turned on and usable state, or docked. However if you think it'll help please feel free.
Many thanks in advance!
opennetcf.org has examples and a free library which you can download
Eelco
Many thanks! However from what I can see, I'd need the latest version, which is not free :S Any attempt to install the previous SDK's fail as I'm running VS2005...
Ok, to clarify, I'm looking for a framework for a windows application that will enable me to connect to a smartphone, and control it. From what I can tell from the above site, the Opennetcf libraries are for a device application... I've installed the free version of the libraries and they work find under the emulator, but that's not really what I'm after...

Services & DLL's - Descriptions/Functionality

Many threads say you can just disable/enable services but don't get into enough detail.
Figured I'd try to start a nice thread on services/DLL's that are on devices.
Feel free to help out.
*Even asking about other services found on your device will even help.
Required - The service is required for common core functionality.
May Be Required - Should not effect basic device functionality, but necessary in some cases.
Not Required - Wont have a significant impact on device functionality.
==== SERVICES ====
SqmUpload/sqmsvc.dll - System Quality Metrics, not required. Used by Customer Experience functionality to monitor feedback. (Can be deleted with SQM disabled)
credsvc/credsvc.dll - Credential Manager Service, required for ActiveSync to sync properly.
LASSD/lassd.dll - Local Authentication Subsystem, required (GWES or SERVICES relies on it???)
DTPT/dtpt_srv.dll - Desktop Pass-through, may be required for ActiveSync. Allows ethernet access when connected via ActiveSync.
BTHIDSVC/bthidsvc.dll - Bluetooth Human Interface Service, may be required for connecting inout devices over Bluetooth.
OBEX/OBEXSrVr.dll - Object Exchange Server, may be required for IrDA/Bluetooth file transfering.
SNApi/regextdev.dll - State and Notification API, may be required for some applications monitoring devices states. ex: Incoming Calls, etc.
CERTENROLL/enrollsvc.dll - Unknown (Socket Certificate Enroll?), may be required for EAP-TLS Authetication.
BTAGSVC/kwag.Dll - Bluetooth Audio Gateway Service, may be required to activate Bluetooth and Audio over Bluetooth. (Some devices claimed to stream audio without)
BthAsPlugin/BthASPlugIn.dll - Bluetooth ActiveSync Plugin, only required for Syncing over a Bluetooth connection.
==== PROCESSES ====
filsys.exe - Internal Filesystem, required for basic operation. Manages registry and filesystem.
cprog.exe - Default Cellular Handler, required for basic phone operation.
device.exe - Device Handler, required for basic operation. Hooks system drivers and basic system functionality.
gwes.exe - Graphical Windowing and Event Subsystem, required for basic operation. Basically draws windows and controls.
shell32.exe- Windows Mobile Shell, required for basic operation. Basically creates the "desktop" and window functionality.
connmgr.exe - Connection Manager Application, required for basic network operation. Maintains a list of connections and profiles.
NK.exe - ??? Kernel, required for basic operation. Initilizes device and maintains system kernel.
poutlook.exe - Pocket Outlook ?Monitor?, may be required for some operation. May maintain connection to e-mail server.
==== DRIVERS ====
coming later
Nobody finds this the least bit useful?
I do! Give people a chance to reply, you posted late in the evening for Europe!
Thanks for the info.
I do too Maybe BTAGSVC means bluetooth audio gateway service?
MCSchermer correct
BTHIDSVC/bthidsvc.dll - Bluetooth Human Interface Service, required for connecting human interface devices over bluetooth (mice, keyboards and such)
BTAGSVC/btagsvc.dll - Bluetooth Audio Gateway Service, required to transfer audio over bluetooth.
thanks
good work
BR
Thanks Allot
as a Noob chef, I totally find this useful.. this isn't around anywere i've seen. Thanks allot sir!!
Thanks for the explaination. Should be a sticky thread IMO.
Very helpful. Thanks!
Tahnks a lot mate...A good effort. Share some more...
Very useful stuff
Great for building ROM's and speeding up the device by disabling some services.
You should post this on WIKI great info.
xplode said:
MCSchermer correct
BTHIDSVC/bthidsvc.dll - Bluetooth Human Interface Service, required for connecting human interface devices over bluetooth (mice, keyboards and such)
BTAGSVC/btagsvc.dll - Bluetooth Audio Gateway Service, required to transfer audio over bluetooth.
Click to expand...
Click to collapse
Thank you very much sir.
I kept thinking...HID...HID...what would a mobile device use HIDs for?
Basically exactly what an HID is, rather stupid to have it enabled by default...but makes sense.
If anyone can find out if device hotkeys (like headsets, etc) work with BTHIDSVC disabled, that would be great.
*Also could use assistance in determining core nature of poutlook.exe
Thanks
I found this lying around the internet. I don't have time to translate it, maybe someone does. I'll just post it here and hope You find it useful.
EDIT: Adding some keywords to make it googleable WM6 windows mobile Exe dll file description documentation
Dude, this is freakin' awesome! Thanks, bro
Thanks! Very useful information.
Nobody gonna help?
Nobody's gonna help until You very clearly state what is the problem. Currently You have one rhetorical question pending. Nobody has time to answer rhetorical questions.
Cool info
thanks for the info man.this will be a nice help for rom cookers.
btw, i'm not sure though, but is'nt poutlook.exe related to contacts or messaging for communicating to outlook on pc thru active sync?
I don't really know, I haven't flashed anything in my life except a router and CD-ROM Ant these were far more easy to flash than a PPC it seems.
Thanks, Great info..

Categories

Resources