Correction to existing optical media handling robot software

Completed Posted Jan 15, 2013 Paid on delivery
Completed Paid on delivery

We have previously developed software that interfaces a Perl script to the API for an optical media handling robot (Primera Bravo; [url removed, login to view]). The code functioned perfectly until recently when the API was updated. This version fails stating it is unable to enumerate the drives ("too many drives to resolve which one(s) were robotically controlled"). We require corrections to the code, or a rewrite that can incorporate any of the previous code to provide the desired functionality defined below. The machine to which the robot is attached is not available for remote access.

This code must use the optical media handling robot SDK provided with this specification sheet (PTRobot version 1.6.2). The original code that worked flawlessly for over a year is also attached to this specification sheet.

We require that this software be command-line operated on the Windows 7 OS. A Perl script is preferable; if written and compiled in another language, we require that the source code be provided alongside the executable.

The script must perform the following actions:

1. Instruct the robot to acquire a DVD from the designated input stack.

2. Open the DVD drive and place the acquired DVD in the drive.

3. Run an external Perl script; for proof of concept, provide a script that provides a list of all files in the root directory on the DVD.

4. Monitor for completion of the external script.

5. Upon completion of the external Perl script, the script must eject the DVD.

6. Remove the ejected DVD from the drive, and place the removed DVD on the designated output stack.

7. Repeat these actions for each DVD present in the input stack.

Basically we wish to run Perl scripts on a large library of BD/DVD/CD data. The initiating program ONLY needs to MONITOR for the completion of the script and eject the disk thereafter & then repeat the process for the next disk. Since the initiating program's JOB is STEPS 1-7 and its state variables/ course of action do not change on the basis of the script output; the two processes run in separate address spaces; one monitoring the other. The external Perl script will decide what has to be done with the generated output (perhaps save it into another file on the host system).

As the API is in C. The program to perform steps 1-7 is written in C. To invoke the external Perl script we create a communication channel using a socket()/pipe() to monitor the script - for completion - in this case. That way the script output will be available to the initiating program. [The initiating program will not be able to change the state of the Perl variables in the external script].

C Programming Perl

Project ID: #4130702

About the project

1 proposal Remote project Active Jan 15, 2013

Awarded to:

sm0n

Dear Sir, I carefully checked the files provided and can fix the problem quickly.

$50 USD in 1 day
(1 Review)
1.4