Is there any open protocol so the already existing applications like AutoCAD or illustrator could communicate with a custom made plotter?
Related
I am doing some research on the WebUSB API for our company because we are going to start to manufacture devices in house.
Our current device manufacture comes with an application so the team can plug the device into a computer and diagnose it. Their application allows us to read outputs from the device, as well as pushing commands/configuration to the device over a wired connection.
Since this device is 100% ours, we are also responsible for building out the diagnostic tooling. We need some sort of interface that allows a user to read outputs and send commands/configuration to the device over a wired USB connection.
Is the webUSB the correct API? If not, what are some suggestions for accomplishing the requirement? Are we limited to building some sort of desktop or mobile application?
I would recommend resources below to read to help you understand if the WebUSB API fits your needs or not:
https://web.dev/devices-introduction/ helps you pick the appropriate API to communicate with a hardware device of your choice.
https://web.dev/build-for-webusb/ explains how to build a device to take full advantage of the WebUSB API.
From what you describe, WebUSB isn't strictly required but won't hurt either.
First and foremost, you will need to implement the USB interfaces reading data and sending configurations. It will be a custom protocol, and not one of the standard USB device classes such as HID, video or mass storage. The details of the protocol and if you use control, interrupt or bulk transfers is your choice.
I'm assuming you will connect the devices to Windows PCs, and you likely don't want to put money into writing device drivers. If so, the easiest approach is to add the required descriptors and control requests required for Microsoft OS 2.0 Descriptors. That way, the WinUSB driver will be installed automatically when the device is plugged in.
Using the WinUSB API, a Windows application will then be able to communicate with the USB device. No additional drivers are needed. (On macOS and Linux it's even easier as you don't need the Microsoft OS 2.0 Descriptors in the first place.)
On top of that you can implement the additional descriptors and control requests for WebUSB. It will provide the additional benefit that you can write a web application (instead of a native application) for communicating with the USB device. (Currently, you are restricted to the Chrome browser.) WebUSB devices should implement the WinUSB descriptors as the alternative (.INF files, manual installation process) is a pain.
The already mentioned web page https://web.dev/build-for-webusb/ is a complete example of how to implement it.
I recently purchased this USB relay device and would like to control it (open and close each relay with code) in a Node.js program. The product comes with software that I believe allows one to do such via c++, an example program that allows you to control the device, and many other files(.cpp, .h, .dll etc.).
How can I use this to control the device in a Node.js program?
I want to create an app in Linux that can browse the files from a bluetooth phone and eventually retrieve them. I've been reading and googling and it seems the way to do it is communicating with Bluez via DBus.
However there doesn't seem to be DBus methods for interacting with files. Therefore, do I need to use obex protocol to do this instead? I'm quite lost here.
Thanks
In your case you want to use FTP profile which uses obex protocol,this obex will call RFCOMM layer and thus bluetooth will be used.You need to create a filetransfer(org.bluez.obex.FileTransfer) interface and call obex methods via dbus call,check here or the ftp plugin available in bluez
I am planning to create a Modem Manager program for a USB Modem (GSM). However I am uncertain on how to implement the features using QT/C++ on Ubuntu/Linux.
The graphical program window will show detils like network strength and carrier's name, as well as be able to access SMS and contacts on the SIM card.
It will feature a connect button to connect to the network and USSD option to check balance and data usage. These features are available to the users using this modem on Windows.
How can one implement them on Linux? Any tutorial or article to start with. I am ready to research and practise but don't know where to head?
I'm working on firmware for an MFI device and when the user plug in his device I can test if he has a specific app. However, if he doesn't have it I would like to open App Store and show him the application so he can download it.
I cannot figure out how to do that. Any ideas or links to docs that can help?
Yours
/peter
This is from the developer docs at this link.
Declaring the Protocols Your Application Supports Applications that
are able to communicate with an external accessory should declare the
protocols they support in their Info.plist file. Declaring support for
specific protocols lets the system know that your application can be
launched when that accessory is connected. If no application supports
the connected accessory, the system may choose to launch the App Store
and point out applications that do.
To declare the protocols your application supports, you must include
the UISupportedExternalAccessoryProtocols key in your application’s
Info.plist file. This key contains an array of strings that identify
the communications protocols that your application supports. Your
application can include any number of protocols in this list and the
protocols can be in any order. The system does not use this list to
determine which protocol your application should choose; it uses it
only to determine if your application is capable of communicating with
the accessory. It is up to your code to choose an appropriate
communications protocol when it begins talking to the accessory.
So as long as your app and your device have the same external accessory protocol, you shouldn't have to do anything to get that behavior.