Mar 032013
 

A continuation of one of my previous projects. http://www.ragingcomputer.com/2012/06/rimage-dtp-4500-ras-13-initialization-sequence

Each command starts with the nonprintable ascii character ESC (x1B) and ends with a capital C.
Each reply starts with the nonprintable ascii character ESC (x1B) and ends with EOT (x04). Since that looks pretty ugly in a terminal, I replace ESC with a + sign and the EOT with an = sign.

In the known command list, the commands aren’t indented and the known replies are indented.

I smacked together a little bit of perl to verify I was understanding the commands correctly.

perl cmdsend.pl !f12600C

cmdsend.pl

#use Device::SerialPort;
use Win32::SerialPort

my $DONE = 0;

#my $ob = new Device::SerialPort("/dev/ttyUSB0") || die;
my $ob = new Win32::SerialPort("COM1") || die;
$ob->user_msg(1);
$ob->error_msg(1);

$ob->baudrate(38400);
$ob->parity("none");
$ob->parity_enable(0);
$ob->databits(8);
$ob->stopbits(1);
$ob->handshake('rts');

$ob->write_settings || undef $ob;

print $ARGV[0] . "\n";

$ob->write("\x1B" . $ARGV[0]);

while(!$DONE) {
	if(my $result = $ob->input) {
		$result =~ s/\x1B/+/g;
		$result =~ s/\x04/=/g;
		print $result . "\n";
		$DONE++;
	}
	select undef, undef, undef, 0.25; # short sleep
}
undef $ob;

Known Command List

Advertisement:
!f:C Query Serial Number

!e0C Get Version

!e1C Get Status
	!e1000000C - Ready
	!e1002000C - Wait?
	!e1003000C - No Disc
	!e1007000C - No Drive Tray Detected

## Setup / Initialization
!f12402C Probe to Disc Drive Tray
	!f10C - No Disc
	!f11C - Disc Was In Drive

!f0240C Get Result of Probe to Disc Drive Tray
	!f01300241C - Bottom Drive
	!f01300242C - Third Drive From Top
	!f01300243C - Second Drive From Top
	!f01300244C - Top Drive
	!f01365534C - Error

## Grabber Arm Movement
!f12600C Move To - Home Grabber Arm - Stop Above Printer
	!f11C

!f12400C Move To - Above Top Drive

## Load / Unload Drives
!f12440C Move To - Top Drive
!f12441C Put Disc - Top Drive
!f12442C Grab Disc - Top Drive

!f12430C Move To - Second Drive From Top
!f12431C Put Disc - Second Drive From Top
!f12432C Grab Disc - Second Drive From Top

!f12420C Move To - Third Drive From Top
!f12421C Put Disc - Third Drive From Top
!f12422C Grab Disc - Third Drive From Top

!f12410C Move To - Bottom Drive
!f12411C Put Disc - Bottom Drive
!f12412C Grab Disc - Bottom Drive

## Get Disc From Bin
!f12002C Grab Disc - Bin 1
!f12012C Grab Disc - Bin 2
!f12022C Grab Disc - Bin 3

## Put Disc In Bin
!f12001C Put Disc - Bin 1
!f12011C Put Disc - Bin 2
!f12021C Put Disc - Bin 3

## Inventory Bins
!f0200C - Query Discs in Bin 1
	!f01000000C - 0 discs
	!f01300003C - 3 discs
	!f01365534C - Error

!f0201C - Query Discs in Bin 2
	!f01000000C - 0 discs
	!f01300003C - 3 discs
	!f01365534C - Error

!f0202C - Query Discs in Bin 3
	!f01000000C - 0 discs
	!f01300003C - 3 discs
	!f01365534C - Error

## Get Grabber Arm Location
!f0220C - Query Current Location
	!f01000500C - Top
	!f01002585C -

## Useless Since The Printer is Crippled
!f12602C - Grab Disc - Printer Tray
	!f10C -

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)