How to write a Windows WIA(Windows Image Acquisition) driver? - sti

Could anyone help me please? I'm totally confused.
I'm asked to write a Windows WIA driver. From MSDN (https://learn.microsoft.com/en-us/windows-hardware/drivers/image/), I got some info:
A WIA driver builds on the foundation provided by STI and so exposes STI interfaces in addition to its own. At a minimum, a WIA driver must expose the IStiUSD interface.
So, should I write a STI driver first? I don't know how to get started with STI neither. And, could a USB scanner work out of box with only INF files?

What kind of hardware are you targetting? If you're interested in the driver for Camera device, you'd better use avstream driver.
Jesse Ahn

Related

QCA7000 driver for STM32

I would like to use QCA7000 with STM32. Is there any examples of using QCA with STM32 via SPI? Officially there is only driver for Linux on i.mx 28 from Qualcomm.
Finally, I would like to use it with freertos plus lwip or freertos TCP.
there is no such driver.
You can implement yourself one by following the open-to-public documentations,
like
https://in-tech-smartcharging.com/assets/Downloads/an4_rev5.pdf
There was a better one but i'm not able to find it. I'll update if it comes up.
(I implemented multiple versions but they are all close sourced to the company where i work)

How do I control a Beckhoff EtherCAT Coupler with powershell?

We have a Beckhoff EtherCAT Coupler which is currently being controlled by some c# code, we call that c# code from a powershell script. We want to move the entire process of toggling slots on the coupler to the powershell script but I'm not sure how to do that. If you could provide me even with information on how to send/receive Modbus commands in powershell that would be hugely helpful.
Thank you!
EDIT:
Here is the code used in C# to toggle one slot of the IO coupler:
using System.Net.Sockets;
using Modbus.Device;
TcpClient tcp_connection = new TcpClient(ip, MODBUS_TCP_PORT);
ModbusIpMaster coupler = ModbusIpMaster.CreateIp(tcp_connection);
coupler.WriteSingleRegister(0x1120, 0);
coupler.WriteSingleCoil(slot, state);
Acontis offers an EtherCAT Master for Windows library and a C# example application you could leverage to include into your own application: https://acontis.com/en/ecsta.html
Working with machine automation controllers is highly manufacturer specific. I've got working knowledge only about Omron PLC & MACs, so I cannot provide exact details.
Anyway, one way would be to create a C# DLL and call it from Powershell. As how to program the coupler, start by finding out which model, exactly, you are working with and searching Beckhoff's documentation. Maybe there are suitable samples available.
Consider also contacting manufacturer's support. They might be able to provide advice with very reasonable pricing, unless the task grows into a consulting gig.
Programming PLCs and MACs is often done via manufacturer specific solutions. Those are much simpler to use than general-purpose language such as C#.

FTDI differences between VCP and D2XX

I have a FTDI FT232R device and am currently trying to figure out whether to use VCP or D2XX. I've read a little about the pros and cons of both, but am still unable to determine which one to use for this project. Since I am going to use Linux for this project, is it even worth the extra effort to use D2XX? Any kind of help or information would be appreciated.
Greetings,
Sparkas
Here what I understood from some reading and experience. This list is not exhaustive and I hope that I will be able to improve it with the community answers.
VCP
Pros:
Built-in inside the Linux kernel
Cons:
Slower than D2XX? I've being using an FTDI device and its documentation said that there where not using the VCP method because the driver was too slow.
D2XX:
Pros:
More features: For instance one could use the FT_ListDevices() function to get the list of FTDI enabled devices. This function is not available using VCP.
Cons:
You have to embed the FTDI library inside the project
VCP: Is the virtual com port which appear as the legacy comm port port like /dev/ttyUSB0.
D2XX interface is the proprietary interface for the FTDI devices.
D2XX gives much more access to the hardware which are not available by the VCP.
Like working in different mode . Asynchronous , synchronous mode or bit bang mode or writing to the eeprom chip.
References:
http://www.dlpdesign.com/tnt/VCP%20Vs%20D2XX.pdf
http://www.avrfreaks.net/forum/ftdi-high-baudrate

porting PCIe driver from Linux to OracleSolaris

I need to port a PCIe Linux driver to Oracle Solaris 11.2 (previously OpenSolaris). Before the driver was tested under kernel 2.6.32-36.
Fortunately, the driver was implemented in such a way that one portion is OS/platform specific (PCI registration, memory allocation etc.) and the other half was written in OS independent way, i.e. that part should be relatively easy to port.
My question is about Linux-specific portion, written according to steps in https://www.kernel.org/doc/Documentation/PCI/pci.txt, so I'm assuming Solaris might have similar approach? What should I pay attention to when porting to Solaris, what device driver parts are completely different in Solaris and nedd to be re-implemented then ported?
UPDATE
After reading several materials about Solaris driver model, I still don't understand the purpose and applicability of STREAMS framework, is it extension for character devices or for the network devices, eg. Ethernet cards?
Solaris 11.2 driver documentation is here.
Here are some links that might also be useful:
http://docs.oracle.com/cd/E19253-01/817-5789/
http://www.oracle.com/technetwork/systems/articles/write-dev-driver-jsp-140901.html
http://www.bolthole.com/solaris/drivers/TIPS.html
http://blog.csdn.net/hotsolaris/article/details/1763716

Accessing the Installed Drivers

I am fairly new .. I want to ask
If i can get the installed system drivers of any device/interface card in my Pc and use it in my own applications.
If i can then .. Can anyone tell me if i can use the sematic s7 installed MPI drivers for communication with the Siemens plc with my own application..
I want to use this with c#.net in windows environment
The first question needs more work: the drivers, once installed are already there. There is no concept of "getting" them. You can open a handle to installed drivers to perform various operations, if you know how, and the means to do so differs greatly between different types of drivers.
As for the second question: unless you either have source code or documentation of the driver in question, I doubt it would be possible. Of course, the simplest alternative is to obtain a library from the vendor to access the PLC from an application. The library will hide all the tricky parts of using the driver.