PDA

View Full Version : Q'n'D Batch burner



winopener
02-13-2010, 08:29 AM
Yesterday i had to return my KodakKiosk to its original purpose, burn dvd instead of ripping, in order to make 80 coipes of a wedding movie.
Having a robot, not finding anything that support this task and not wanting to spend the weekend swapping discs, i've figured out a "Quick and Dirty" way to automate the process.
It is a group of 4 simple batch files that calls another BAT or do a command:

- load a disc
- start the brun
- unload a disc
all togheter with a fourth file to loop the process for X copies wanted.

ISO dvd can be burned on command line by several free tools, including ImgBurn, which is the one i've choosen because it allows for a lot of parameters, including /SPEED which for me is critical.

The -load and -unload part are exactly the ones used by BatchRipper for your robot, so every robot can use it.
Since i'm not even a trained monkey - never studied any prog.lang. - the batch files are not "elegant" code and for sure someone else can do it better, maybe on a single one that commands everything with a .ini file for parameters.
Anyway... it does its dirty job - that was my goal - if someone want it i'll post it somewhere.

worsel
02-14-2010, 09:02 PM
Well I at least would like to see what you have done. I would appreciate its posting. Thanks

winopener
02-17-2010, 02:42 AM
Well I at least would like to see what you have done. I would appreciate its posting. Thanks

Here you go:

The code of the 4 batch file follows:

***BEGIN OF INPUT.BAT***
C:\temp\Load.exe --comport=COM14 --comspeed=9600 --drive="G" --label=specialbatchripperflag --rejectifnodisc --label=checkshutdown --ifsetskip=shutdown:yes:shutdown:robot --label=initialtrayopen --open --label=checkshutdownagain --ifsetskip=shutdown:yes:shutdown:robot --label=checkreset --ifsetskip=needsreset:no:insert:robot --label=doreset --command=C:X:5:1:E --ifcommandfailortimeoutskip=failedexit --set=needsreset:no:robot --label=insert --command=I:X:5:1:E --ifcommandfailortimeoutskip=failedload --set=loaderrors:0:robot --skip=trayanddiscin --label=failedload --ifsetskip=loaderrors:0:loaderror1:robot --ifsetskip=loaderrors:1:loaderror2:robot --ifsetskip=loaderrors:2:loaderror3:robot --ifsetskip=loaderrors:3:loaderror4:robot --ifsetskip=loaderrors:4:loaderror5:robot --ifsetskip=loaderrors:5:loaderror6:robot --skip=loadmorediscs --label=loaderror1 --set=loaderrors:1:robot --skip=trayanddiscin --label=loaderror2 --set=loaderrors:2:robot --skip=trayanddiscin --label=loaderror3 --set=loaderrors:3:robot --skip=trayanddiscin --label=loaderror4 --beep=220 --set=loaderrors:4:robot --skip=trayanddiscin --label=loaderror5 --beep=440 --set=loaderrors:5:robot --skip=trayanddiscin --label=loaderror6 --beep=880 --beep=880 --set=loaderrors:6:robot --skip=trayanddiscin --label=loadmorediscs --notify="You can cancel the batch with Abort. Hit Retry only after you load more discs on the spindle. Hit Ignore if the disc loaded correctly (e.g. you have five or less discs).":"Load may have failed for drive {drive} on port {comport}.":2 --set=rc:{notifyreturncode} --ifsetskip=rc:3:shutdown --ifsetskip=rc:4:resetloaderrors --ifsetskip=rc:5:trayanddiscin --skip=failedload --label=resetloaderrors --set=loaderrors:0:robot --skip=doreset --label=trayanddiscin --closeblind --sleep=2 --unbindtodrive --comportrelease --label=successexit --exit=0 --label=rejectbaddisc --bindtodrive --rejectsiterate --open --command=G:X:5:1:E --closeblind --sleep=2 --command=R:X:5:1:E --skip=successexit --label=failedexit --notify="Problem with robot on port {comport} for drive {drive}, shutting down..." --skip=shutdown --label=shutdown --set=shutdown:yes:robot --set=needsreset:yes:robot --messagefile={passerrorsback} --message="[cancel batch]" --exit --logfile=C:\Temp\dBB3D4.tmp --passerrorsback=C:\Temp\dBB3D5.tmp
***END OF INPUT.BAT***

***BEGIN OF OUTPUT.BAT***
C:\Temp\UnLoad.exe --comport=COM14 --comspeed=9600 --drive="G" --label=checkshutdown --ifsetskip=shutdown:yes:shutdown:robot --bindtodrive --skip=initialtrayopen --label=initialtrayopen --open --skip=checkreset --label=checkreset --ifsetskip=needsreset:no:accept:robot --skip=doreset --label=doreset --command=C:X:5:1:E --ifcommandfailortimeoutskip=failedexit --set=needsreset:no:robot --skip=accept --label=accept --command=G:X:5:1:E --ifcommandfailortimeoutskip=failedexit --closeblind --sleep=2 --command=A:X:5:1:E --ifcommandfailortimeoutskip=failedexit --comportrelease --skip=successexit --label=failedexit --notify="Problem with robot on port {comport} for drive {drive}, shutting down..." --set=shutdown:yes:robot --skip=shutdown --exit=0 --label=successexit --exit=0 --label=shutdown --set=needsreset:yes:robot --messagefile={passerrorsback} --message="[cancel batch]" --exit --logfile=C:\Temp\dBB3D8.tmp --passerrorsback=C:\Temp\dBB3D9.tmp
***END OF OUTPUT.BAT***

***BEGIN OF ONECOPY.BAT***
sleep for 3
call input.bat
C:\TEMP\imgburn.exe /MODE WRITE /SRC "C:\temp\wedding.iso" /DEST G: /START /SPEED 8x /COPIES 1 /VERIFY NO /CLOSE
sleep for 10
call output.bat
sleep for 3
***END OF ONECOPY.BAT***

***BEGIN OF MANYCOPY.BAT***
@ECHO OFF
SET LOOP=0
:LOOP
CALL ONECOPY.BAT
CALL XSET32 /MATH LOOP=%LOOP% +1
IF NOT "%LOOP%" == "%1" GOTO LOOP
SET LOOP=
:END
***END OF MANYCOPY.BAT***


What they do and how to work with it:
Both INPUT.BAT and OUTPUT.BAT are the command used by the BR Loader, you can get the specific one for you in two ways:
a) inside the folder of your loader there are some subfolders, among them LOAD and UNLOAD; the .txt files have a full description of the switch;
b) configuring Batch Ripper for the specific robot, you have the TEST button: after the test you can see below, on the report area, the actual commandline called by the program. Create a path line for the command (example: c:\temp\load.exe), add the com port info and speed, then all the output of the test line.

ONECOPY.BAT just do a Call of Input, to load the cd into the burner, then open imgburn with the desidered parameters, specifying the ISO to write, the drive where to write it etc (launch IMGBURN without anything on a command line box and you can see the parameters available), then when imgburn closes, call the Output to unload the cd. The "sleep" command is a dumb utility that just sit there for X seconds given, i found it useful to not mess up the spinning of my TSST drive.

MANYCOPY.BAT do the loop for the X numer of copies wanted, usage is "MANYCOPY x" where x=numbers of copies. The loop in order to work uses a variable that i've found easier to set with XSET.EXE, a shareware utility.

As i said... this is not elegant, but it does works.

worsel
02-17-2010, 06:25 AM
Thanks winopener. It is interesting to begin learning how things really work.

winopener
02-17-2010, 08:04 AM
Just be sure of changing all the c:\temp references present in the four files and modify it with your paths. I just threw everything into c:\temp for testing the stuff and not messin' out all the rest.