|
Hi
I am not sure if I am posting this in the correct forum. If not then please advice me.
I need to recreate an application in C# that controls a device. The reason I am doing this is because the application provided with the device is incifitient.
What do I need to know about the driver in order to control it by the program? At the moment I have very little knowledge of device drivers, so any help is appreciated. I have found lots of tutorial on how to use PInvoke, but do I need to find out what methods the device driver will allow the software to connect to? and if so how do I go about it?
Once again any help is appreciated as I am a student who is still in the learning stage.
Oh the device is an LED matrix control unit that is connected by both usb (sends the device control) and component video (sends the images to be displayed on the LED matrix)
|
|
|
|
|
You might start by looking at this[^] article and follow the example of the author (contact the manufacturer).
I found this by a simple Google search. If you do the same you are likely to get more and better help than you will here.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
Why do programmers often confuse Halloween and Christmas?
Because 31 Oct = 25 Dec.
|
|
|
|
|
I would tackle the manufacturer of your peripheral and driver, and demand documentation. That is the way to learn what commands are available.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Might be worth looking at Sharb USB Lib[^]. You may be able to control the device directly by reading and writing to the USB port.
You would still need a lot of input from the manufacturer though.
|
|
|
|
|
How can I calculate muslim holiday in georgian calendar? Do you have any source code?
|
|
|
|
|
dataminers wrote: Do you have any source code?
I have plenty. Millions upon millions of lines of the stuff.
dataminers wrote: How can I calculate muslim holiday in georgian calendar?
Well - if I were you, I'd start by working out what the underlying algorithm is for calculating the holidays. With so many practicing muslims the world over, I'm guessing that they aren't just the whim of a random group of people.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
Pete O'Hanlon wrote: I have plenty. Millions upon millions of lines of the stuff.
Yeah, but does that contain anything related to Saint George?
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Hold on while I add a comment.
It does now.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
Now is the time to provide an actual answer to the OP then.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Don't forget to include this reference[^].
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
|
dataminers wrote: georgian calendar
Don't know about this. Know something about Gregorian and Julian calendars.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Hi all,
I have written a C++ library which communicates with an external device. The device sends back certain X and Y coordinates. I am trying to send back these X and Y coordinates to a calling c# application, but I don't want to poll the library with a thread or a loop. Is there a way I can create an event in the C++ library and register to it from the c# application, so that when the X and Y coordinates have values, the event will be fired in the c# application?
Many thanks in advance.
Kind regards,
|
|
|
|
|
I assume you are using P/Invoke; if you somehow get a signal (such as an interrupt) in your native code, all you need is a way to call a managed method; this is known as a callback. You can see an example in this article[^].
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Hi Luc,
Thanks for the reply. I have heard about P/Invoke, but wasn't sure about how to go about using it. But many thanks for the link, I think the delegate section is what I needed.
Kind regards,
|
|
|
|
|
You're welcome.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Hi Luc,
After some testing, I found myself back at square one, reason being that the example does not illustrate what happens within the c++ section of the code. The author makes use of standard windows methods and I have no idea what they are doing in the method. More specifically, the EnumWindows method. I must create my own method so that I can receive the X and Y coordinates (and that is what the CALLBACK is for ... i guess), thus what parameters must I send to the c++ method? I apologize for my ignorance but I'm in the dark here
C++ Section
BOOL EnumWindows(
WNDENUMPROC lpEnumFunc,
LPARAM lParam
);
BOOL CALLBACK EnumWindowsProc(
HWND hwnd,
LPARAM lParam
);
BOOL IsWindowVisible(
HWND hWnd
);
C# Section
class DelegateExample {
private List<IntPtr> windowList;
public List<IntPtr> GetVisibleWindowHandles() {
windowList=new List<IntPtr>();
EnumWindows(new EnumWindowsProc(CollectVisibleWindows), IntPtr.Zero);
Console.WriteLine("There are {0} visible windows", windowList.Count);
return windowList;
}
private bool CollectVisibleWindows(IntPtr hWnd, IntPtr lParam) {
if(IsWindowVisible(hWnd)) windowList.Add(hWnd);
return true;
}
[DllImport("user32.dll")]
private static extern int EnumWindows(LP_EnumWindowsProc ewp, IntPtr lParam);
private delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
[DllImport("user32.dll")]
private static extern bool IsWindowVisible(IntPtr hWnd);
}
Many thanks in advance.
Kind regards,
|
|
|
|
|
OK, it seems you are having two problems:
1.
you don't want to poll, i.e. periodically read and process the data. You want something that is event driven, a cause-and-effect kind of thing. That is possible if and only if your peripheral is giving you a cause, maybe by issuing an interrupt; or by sending data. If not, all you can do is have a polling loop.
2.
Calling managed code from unmanaged code, is called a callback. There are at least two examples in my article, the more informative one may well be the "Two-side logging" which includes all the code involved for both parties.
Hope that helps.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Thanks again Luc.
P.s the demo application link does not work.
Kind regards,
|
|
|
|
|
Programm3r wrote: link does not work
You're right, that is one of the reasons it still is Work In Progress. However, the relevant stuff is in the article itself.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
with Microsoft.Win32.SafeHandles.SafeWaitHandle you can use C++ Handles in C#. -> AutoResetEvent
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Hi Karsten,
Could you please elaborate on your answer?
Many thanks.
Kind regards,
|
|
|
|
|
Yesterday, I tried to convert an Icon consists of single PNG image into a Bitmap with Icon.ToBitmap() method. But it threw a mysterious ArgumentOutOfRangeException.
I've investigated the cause of the error, and reached a conclusion. The method doesn't assume that the icons may contain PNG images.
Is it a bug of .NET framework?
|
|
|
|
|
No. It's a misunderstanding on your part of what an icon is.
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Sorry, I can't understand what you said.
You mean an icon which contains bitmaps in PNG format is incorrent one?
|
|
|
|