|
mikyivy wrote: Hello From Huntington Beach.
HB! I spend a significant amount of time in HB
Greetings from Fullerton.
Cheers,
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi,
I am working on a hardware controller device which has a USB port I need to use to write commands to the controller.
I have been able to ennumerate the device and obtain the handle for that device using CreateFile().
But when I try to execute ReadFile() or WriteFile(), the function fails and GetLastError() returns ERROR_INVALID_FUNCTION.
My code looks like this:
HANDLE hUsbDevice = CreateFile(path.c_str(),GENERIC_READ|GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
if (hUsbDevice == INVALID_HANDLE_VALUE)
{
val = GetLastError();
cout<<"failed in CreateFile"<<" error: "<<val<<"\n" ;
}
else
{
char _send_buff[] = {'I','n','i','t','1','=','0','\0'};
int _send_size = sizeof(_send_buff);
int _wrstatus = 0;
DWORD _bytes_written = 0;
_wrstatus = WriteFile(hUsbDevice,_buff,_size,&_bytes_written,NULL);
if (!_wrstatus)
cout<<"\nError while writing port: "<<GetLastError()<<endl;
}
Where am I going wrong here
|
|
|
|
|
You know that USB is totally different than a serial port on this level ? You can't just open the 'port' and send data on it. Instead you get a handle from a device driver and you communicate with this driver. The driver is then in charge of the communication with the device. Did you receive any kind of information with the USB device ?
|
|
|
|
|
I do have some manuals but they do not say much. This USB port is an auxillary port of the controller. Normally it is not used.
But I do know the USB drivers. Could you please tell me the procedure to get the driver handle? Is there any article I can refer to?
|
|
|
|
|
koumodaki wrote: Could you please tell me the procedure to get the driver handle?
You have to use CreateFile but you need to supply the driver symbolic name. The only way to know it is to look through the documentation or ask the guys. Is there anything related to DeviceIOControl in your doc ?
There's no way we can help you here if you need to use DeviceIOControl because the codes you need to use are specific to the supplier.
|
|
|
|
|
I will have to look into the manual carefull now. Anyway thanks for the help.
|
|
|
|
|
Is it me, or are there a lot of "How do I talk to this USB device I have incomplete documentation for" questions lately?
A device driver does not actually have to provide an implentation of read or write. If it does not, then the user mode equivalents will fail too.
eg:
DriverObject->MajorFunction[IRP_MJ_CREATE] = ImcNullDispatch;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = ImcNullDispatch;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = ImcIoCtl;
DriverObject->DriverUnload = ImcUnload;
That code was taken from a driver I wrote ages ago (function names change to protect the guilty). Not there is no
DriverObject->MajorFunction[IRP_MJ_READ] = ...
In which case, I bet it has a huge DeviceIOControl function.
So you'll have to go digging up information from the website of the controller device.
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
|
Hi all,
I would like know whether anyone knows a good SMTP mail class or examples (in C++). I have made a quick search on Google but can't find anything descent. Can anyone please help.
Many thanks in advance
Regards,
The only programmers that are better that C programmers are those who code in 1's and 0's
Programm3r
My Blog: ^_^
modified on Tuesday, May 13, 2008 9:27 AM
|
|
|
|
|
Programm3r wrote: I have made a quick search on Google
What about a quick search on CP [^]?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Thanks for the reply and link ... I'll see if I can find anything in C++ on how to send a mail in C++
Regards,
The only programmers that are better that C programmers are those who code in 1's and 0's
Programm3r
My Blog: ^_^
|
|
|
|
|
This one [^] looks promising.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
|
See here.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanks for the reply and the link, Anything that is not in C# ?
Thanks again ...
Regards,
The only programmers that are better that C programmers are those who code in 1's and 0's
Programm3r
My Blog: ^_^
|
|
|
|
|
Programm3r wrote: Anything that is not in C# ?
Yes.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Little bit sensitive today or what ??
The only programmers that are better that C programmers are those who code in 1's and 0's
Programm3r
My Blog: ^_^
|
|
|
|
|
don't you see the searching filter ?
|
|
|
|
|
No I did not .... Let's try again ...
The only programmers that are better that C programmers are those who code in 1's and 0's
Programm3r
My Blog: ^_^
|
|
|
|
|
Why would you ask that? Your question did not require anything more than a one-word response.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
DavidCrow wrote: Your question did not require anything more than a one-word response.
It's not about the 'one word' answer, I assumed that you voted my response a 1, thus the response ... If not ... then my bad
Regards,
The only programmers that are better that C programmers are those who code in 1's and 0's
Programm3r
My Blog: ^_^
|
|
|
|
|
- Excuse me Mister, do you have the time ?
- Yes.
|
|
|
|
|
|
i have two application one is a library and another is a dll. i want to use the variable which is declared in a lib in the dll. I used declspec dllexport and declspec dllimport but it is giving LNK2001 error. How to resolve this?
Thanks & Regards
|
|
|
|
|
Do you mean you want to use the variable, defined in static Library, in the Dll? If so no need of dll(ex/im)port declarators, declare the variable as extern in Dll and link the static library to the DLL.
|
|
|
|