Connect to digital camera from cellphone? - mobile

A customer (photographer) asked me, if it was possible to write some kind of software for cellphones, so he could physically connect it to his professional digital camera (Canon or Nikon) and transfer the pictures (or a subset) to the cellphone.
I am trying not to put constraints on cellphone platform (Symbian, Windows Mobile etc) from the beginning, so I am leaving that sort of constraints out on purpose.
Can anybody give me some hints?

You need a connection between the camera and the cellphone:
Some windows mobile devices got a USB-Host-Function, so you can connect either a cardreader or the camera itself via a usb-cable and read the files from the device. I never heard of a symbian-device which supports usb-host, but there might be some.
If the camera supports either bluetooth or ir, you could use these protocols to transfer the files as most mobile-phonse support this.
If you got a connection (and the protocol-support by your platform) it is easy to write a application to transfer the file from the device to you cellphone. You can write this application in any supported language (java for j2me, python (symbian), .net (windows mobile)

My digital camera saves photos to a memory card. I can simply take the memory card out of the camera and insert it into my Windows Mobile phone and view the photos on the phone.

Related

How to control a physical robot using a web interface

I would like to know how I could control the movement of a physical robot using a web interface. For example, I have created a web interface with four movement buttons (front, back, left, right) but do not know how to connect that interface to the physical robot and control its movements. I have experience in controlling a simulated Turtlebot (in Gazebo) with the interface locally on my laptop using ROSBRIDGE and SimpleHTTPServer. Would I have to use these as well to control a physical robot?
I'm running ROS2 Crystal, Ubuntu 18.04. Thank you!
Yes, The interface to control a physical robot would be the same as simulation.
You will need to to publish control command to /cmd_vel topic and then you can subscribe to the topic to convert those velocity commands to actual motor commands.
You can also look into using Robot Web Tools for the web interface.
Additionally if you could provide more detiails about your setup I could give more information.
You can also use existing tools that allow you to quickly connect to your robot without having to build the communication infrastructure yourself. An example of that is Freedom Robotics platform that includes a variety of teleop tools for ROS.
You can find more information here (a post from their Head of Robotics) or try out for free.
I used this for a few of my personal projects and it saved me from all the hassle of creating the web interface and the API communication with ROS.

Finger print scanner with webusb

Is possible to connected/paired usb finger print scanner with webusb (https://wicg.github.io/webusb)?
I have digital persona U.are.U 4500 and want to connect to browser (chrome) with react.js and get image file and can compare image
WebUSB is a generic API for communicating with USB devices and so supporting any particular device requires knowledge of the data protocol used to communicate with the device. Manufacturers may or may not provide public documentation for this protocol and so it is often necessary to reverse engineer it by observing the communication between the device and a closed-source driver. In the cases where an open-source driver is available then that can be a reference for building a Javascript application to control the device.
In the case of the DigitalPersona U.are.U 4500 it appears that the open-source libfprint library includes a driver for this series of devices: https://gitlab.freedesktop.org/libfprint/libfprint/blob/master/libfprint/drivers/uru4000.c
This would be a good starting point for understanding how to communicate with the device.

Silverlight Browser Application Capabilities for OSX

My company has developed a .net 4 WPF application that connects to our manufacturing devices over a local network and controls them, in addition to processing image data and outputting it to these devices from the windows desktop. I have been tasked with porting a bare bones version of this to mac. My options are mono for mac or a browser based SilverLight application.
What is the feasibility of a browser based app that will essentially
-scan the local network for our devices and send commands to the chosen device
-accept images from the local machine, uploading them to our server for processing. We would then send the processed data back for output to the local device and display the final image in the browser.
I'm aware that SilverLight 4 Elevated Privileges allow connection across a domain without port number limitations. However I am unsure about scanning a network from a silverlight app running in safari.
-accept images from the local machine, uploading them to our server for processing. We would then send the processed data back for output
to the local device and display the final image in the browser.
Silverlight app can't access files from local machine without user interaction. OpenFileDialog class can't be user initiated. you have to select files from local machine to upload to some service.
-scan the local network for our devices and send commands to the chosen device
as far as scaning local network is concerned, silverlight don't offer TCP ping. if your devices offer some interface using http you might be able to connection and send commands to devices using WebClient.
Further last but not the least silverlight is not full supported in MAC OS described by microsoft. so you might face weird issue that will remain unfixed. Check System Requirement here http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx
Regards.

Windows Phone 7 Bluetooth/Wi-Fi

I would like to create application for Windows Phone 7, which will be communicating with desktop application via Bluetooth/Wi-Fi. Is there any API in Silverlight, which allows to use Bluetooth/Wi-Fi programatically?
Looks like bluetooth is going to be standard in the chassis spec. Unfortunately at this stage there is no api exposing Bluetooth functionality in the SDK. I think we'll have to wait and see on this one.
I understand devices will be able to inherently connect over wifi the same as 3g. No low level wifi specific api's known at this stage.

How to implement a USB device driver for Windows?

How should I approach implementing a USB device driver for Windows? How should I take into account different versions of windows e.g:
- Windows XP
- Windows Vista
- Windows 7
Is there open source solutions which could be used as a starting point? I'm a total newbie to windows driver development.
We have an embedded device with USB device port and we would like to have as low latency communication from the application level to the device as possible without sacrificing the data throughput. The actual data transferred is ADC/DAC data. Basically there is a lot of data which we need to transfer to a Windows machine as fast as possible.
We need more information about the device to point you in the right direction, but here are a few steps to get you started:
register with Microsoft Connect so you can download the Windows Driver Kit
register with osr-online as you'll find great articles, plenty of information, and a newsgroup dediciated just to Windows drivers -- this place is a goldmine
buy Developing Drivers with WDF, which will help you make sense of driver development on Windows and give you a good foundation to read articles from OSR and Microsoft
Hope that you can use UMDF (user-mode drivers) as you can use C++ and just write COM code. If you're doing anything with USB that requires kernel-space....you've got a lot of reading and learning to do for the next year!
To answer your question on versions, the Driver Kit has tools that will help you manage creating different drivers. If you write a good driver, it should run on all three OS with no problems, and the differences will just be in the config area (not the binary)
Basically, it depends on how complex your device is. What type of driver are you trying to write? File system? MP3 player? Camera? Modem?
If you end up having to write a kernel mode driver, let me know and I can point you to some good articles and what not.
I should also add that for around US $5,000, you can buy a license for WinDriver, a tool that takes all of the hard stuff out of driver development. You can use C++ or C# user-mode code to communicate with their driver that is custom generated for your device. This is the way to go if you have a tight deadline.
You can take a look at windows variant of libusb *here*. There are wrappers for many programming languages on official libusb site and on the web.
Start here: Windows Driver Kit Introduction
If you have some form of control over the device side, have it implement an interface for which Windows already provides drivers. E.g. the USB HID class (literally Human Input Device, but neither the Human nor the Input is mandatory) already has Windows drivers, and there is a reasonable Win32 API on top. You're not going to get data rates anywhere near 480 Mbps, though.

Resources