Hi, Please bare with me on this ill try and explain what my problem is the best i can and if you could forgive my lack of knowledge that would be great.

im fresh out of university after completing a web development degree and ive just landed a new job for a web/software development company. They have a potential customer who sells GPS equipment and needs us to create some software for one of his GPS loggers. I think it just needs to be able to grab co-ordinates from it and store them in a file. the device connects to a computer using mini USB and this software is going to be created using C#

unfortunately i have NEVER used C# and have no idea where to begin with this i feel like a 5 year old trying to learn quantum physics.

Luckily so far all the boss wants me to do is discover the processes/methods taken to do this so he has an idea of how much to quote this customer.

So if somebody could help me out by explaining the process for this in as simple words as possible that would be great. Im not after any code and dont need pointing to libraries or tutorials etc. I also need to know what is needed to do this. other than the obvious like a computer lol :)

Hi, perceptis welcome here :)
You will probably need to download a USB lib, because( to my knowlegde ) this is not supported in .NET.
Google, example : http://sourceforge.net/projects/libusbdotnet/
Success !

Hi ddanbe

thanks for that could you tell me what this USB lib is used for? i dont suppose you know the flow of processes involved in completing this kind of task?

i dont suppose you know the flow of processes involved in completing this kind of task?

You are quite right, I don't!
I just know that if you need to set up some communication with a USB device you need some tools(classes) not provided in .NET for the moment.
Assuming you know how to program in OO I also suggest, to read a basic book about C#(perhaps your boss has one?) to make you feel more confortable with the laguage.
You could also consider Winows Communucation Foundation. I haven't the faintest idea if that will help you, but if I were you I would have at least a look at it.
Good luck.

You should probably look at the SDK and Documentation for the device. This should tell you exactly what you need to know. If that information isn't to hand, you should be able to find it on the manufacturers website.

USB Devices generally have some kind of API to do all the donkey work for you (as they interact with a driver), unless it's a virtual COM port. In which case it's back to Serial Communication 101 ;)

im not sure what an SDK is. but the user manual doesnt mention it anywhere...neither does their website.

Where can i see this SDK stuff? and what do i use it for?

ok. well there is nothing about any SDK on either the website or the manual that comes with the product. im not really looking for code or anything at this stage. Im looking for a flow through of the processes involved in creating this piece of software. What is needed, does anything like drivers need to be created. Although i think you can get the device drivers from the Holux website.

You will need, the drivers, the SDK (or like I said, in the case of the virtual COM port all you need is the driver) and some programming knowledge, which it appears you don't have.

Of this I'm a little astounded. What kind of web dev degree lets you graduate without even knowing what an SDK is? They're used in ASP .NET (C#/VB) and PHP (which is very "C++" like)

If you applied for a web dev. job and only know HTML/JavaScript, I suggest you learn a web programming language *very* quickly or you may face your job being at risk as a developer is expected to know at least one of these two, if not both.

I don't mean this message to be offensive, but hopefully it will spur you on a little ^^

You will need, the drivers, the SDK (or like I said, in the case of the virtual COM port all you need is the driver) and some programming knowledge, which it appears you don't have.

Of this I'm a little astounded. What kind of web dev degree lets you graduate without even knowing what an SDK is? They're used in ASP .NET (C#/VB) and PHP (which is very "C++" like)

If you applied for a web dev. job and only know HTML/JavaScript, I suggest you learn a web programming language *very* quickly or you may face your job being at risk as a developer is expected to know at least one of these two, if not both.

I don't mean this message to be offensive, but hopefully it will spur you on a little ^^

i can confidently say that SDKs didnt come up once during my degree. and neither did C#. my course covered things like PHP, .NET, javascript, CSS, flash, XML, SQL, database management and a bunch of other things...and ive been a PHP developer for some time. and this job title is PHP web developer. they havnt asked me to create this software only to research what is necessary for it.

Im perfectly adequate to carry out the role of a PHP developer and weather you meant it or not your post was insulting because this task clearly isnt anything to do with web development or the degree i studied...so what you were talking about is b*llox

From your first post:

I think it just needs to be able to grab co-ordinates from it and store them in a file

You think but are not sure, why is that?
And could you exactly state what you mean by "flow"?
I never followed any sofware or IT course, I assume you did.
Does the phrase "software design" rings a bell?

To connect to a usb device you will need to look some of these windows api's up

SetupDiGetClassDevs
SetupDiDestroyDeviceInfoList
SetupDiEnumDeviceInterfaces
SetupDiGetDeviceInterfaceDetail
CloseHandle
CreateFile
DeviceIoControl
WriteFile
ReadFile

The device manufacturer should supply a driver you will need to install. They should also have information about how to communicate with the driver.

I needed to connect to Garmin handheld devices through usb. The first thing I did was go to the Garmin website. Garmin provides a sdk on how to connect to the device. They have a microsoft windows usb driver that must be installed. And they have full documentation of what to send to the device and the format of the information it sends back. All information was available on their website.

The hardest part for me was figuring out how to connect to the device. Once that was done it was just a matter of reading the instructions garmin provided.

With out knowing anything other than I wanted to hook my gps into my own program and upload and download points, It took about a week.

Good Luck

i can confidently say that SDKs didnt come up once during my degree. and neither did C#. my course covered things like PHP, .NET, javascript, CSS, flash, XML, SQL...(cut for brevity)

If you did .net but didn't cover C#, what part of .net did you cover? C# is part of the whole .net framework. SDK's and API's are fundamental to *all* development, be it Web or Desktop. Google SDK? Facebook SDK? No?

Also, how do you know that this won't turn into a web development project? I can see uses for having GPS data available from a web service (written in .net (C#)) and provided through web interface to the user (using either ASP .NET (which is predominantly C#)) in fact, this is close to a public sector project I worked on 2 years ago.

You will find the more you're in the business world, the boundary between web developer and desktop developer and services developer becomes more blurry as the internet evolves. I started as a Games Developer, this led to web development. I moved and became a micro and embedded devices developer and through this I'm now also a web services developer. The back-end is written in C#, it communicates to a WCF Service (with http endpoints) and we access it via a web user interface (using PHP with SOAP or ASP .NET with service binding).

Hence, I continue with my recommendation that you take C# a little more seriously and in fact contemplate you are a software developer. Sticking to the "I am a PHP Developer and that's it" won't get you very far, I promise you that.

-------------

Back to the issue at hand, please give us some information as to the make/model of this device and we might be able to locate the SDK's or API's required. Without these, it will be nigh on impossible to get any information out of the driver as you don't have any information about the DLL entry points.

Comments
Well said!
This article has been dead for over six months. Start a new discussion instead.