home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 Mobile
/
Chip_Mobile_2001.iso
/
palm
/
system
/
_palmemu
/
palmemu.exe
/
Scripting
/
Perl
/
PoserRPC.pl
< prev
next >
Wrap
Text File
|
2000-01-27
|
6KB
|
229 lines
########################################################################
#
# File: PoserRPC.pl
#
# Purpose: Scrap file for testing Poser's RPC mechanism
#
# Description: This file contains a hodgepodge of scripts and
# commands used to test out parts of Poser's RPC.
# Don't take anything in this file too seriously;
# it's provided only for completeness' sake.
#
########################################################################
use EmRPC; # EmRPC::OpenConnection, CloseConnection
use EmFunctions;
use EmUtils; # Wait, TapPen, TapButton
use constant hostSignalReserved => 0;
use constant hostSignalIdle => 1;
use constant hostSignalQuit => 2;
use constant hostSignalSessionStarted => 3;
use constant hostSignalSessionStopped => 4;
EmRPC::OpenConnection(6415, "localhost");
if (1)
{
TapButtonSync("OK");
}
if (0)
{
Wait();
$err = HostSessionClose (""); # Don't save
die "$err" if $err;
$err = HostSessionQuit ();
die "$err" if $err;
}
if (0)
{
my ($err, $signal);
########################################################################
print "Waiting for idle\n";
do {
($err, $signal) = HostSignalWait (0x7fffffff);
if ($err)
{
HostSignalResume ();
die "Error $err while waiting for hostSignalIdle";
}
} while ($signal != hostSignalIdle);
########################################################################
print "Closing session\n";
$err = HostSessionClose (""); # Don't save
########################################################################
print "Waiting for session to close\n";
do {
($err, $signal) = HostSignalWait (0x7fffffff);
if ($err)
{
HostSignalResume ();
die "Error $err while waiting for hostSignalSessionStopped";
}
} while ($signal != hostSignalSessionStopped);
########################################################################
print "Creating session\n";
$err = HostSessionCreate ("PalmIII", 1024, "C:\\ROMs\\spp\\rom30dbg.rom");
########################################################################
print "Waiting for session to start\n";
do {
($err, $signal) = HostSignalWait (0x7fffffff);
if ($err)
{
HostSignalResume ();
die "Error $err while waiting for hostSignalSessionStarted";
}
} while ($signal != hostSignalSessionStarted);
########################################################################
print "Closing session\n";
$err = HostSessionClose (""); # Don't save
########################################################################
print "Waiting for session to close\n";
do {
($err, $signal) = HostSignalWait (0x7fffffff);
if ($err)
{
HostSignalResume ();
die "Error $err while waiting for hostSignalSessionStopped";
}
} while ($signal != hostSignalSessionStopped);
########################################################################
HostSignalResume ();
print "Done!\n";
}
if (0)
{
$addr = MemPtrNew (100);
printf ("0x%08X\n", $addr);
EmRPC::WriteBlock ($addr, "1234567890");
$str = EmRPC::ReadBlock ($addr, 10);
print $str, "\n";
MemPtrFree ($addr);
}
if (0)
{
TapPen (100, 100);
}
if (0)
{
$vers = HostGetHostVersion ();
printf ("HostGetHostVersion() = 0x%08X\n", $vers);
}
if (0)
{
$num = DmNumDatabases (0);
print "DmNumDatabases(0) = ", $num, "\n";
$localID = DmFindDatabase (0, "MemoDB");
printf ("DmFindDatabase(0, \"MemoDB\") = 0x%08X\n", $localID);
($err, %results) = DmDatabaseInfo (0, $localID);
printf ("DmDatabaseInfo(0, 0x%08X) = 0x%08X\n", $localID, $err);
print ("results: \n");
print ("\tname = ", $results{name}, "\n");
print ("\tattributes = ", $results{attributes}, "\n");
print ("\tversion = ", $results{version}, "\n");
print ("\tcrDate = ", $results{crDate}, "\n");
print ("\tmodDate = ", $results{modDate}, "\n");
print ("\tbckUpDate = ", $results{bckUpDate}, "\n");
print ("\tmodNum = ", $results{modNum}, "\n");
print ("\tappInfoID = ", $results{appInfoID}, "\n");
print ("\tsortInfoID = ", $results{sortInfoID}, "\n");
print ("\ttype = ", $results{type}, "\n");
print ("\tcreator = ", $results{creator}, "\n");
}
if (0)
{
$block = EmRPC::ReadBlock (0, 256);
EmRPC::PrintString ($block);
}
if (0)
{
my ($form) = FrmGetActiveForm();
my ($num_objects) = FrmGetNumberOfObjects($form);
for $ii (0..$num_objects - 1)
{
my ($line) = "$ii. ";
my ($object_type) = FrmGetObjectType($form, $ii);
my ($type) = ("frmFieldObj", "frmControlObj", "frmListObj", "frmTableObj",
"frmBitmapObj", "frmLineObj", "frmFrameObj", "frmRectangleObj",
"frmLabelObj", "frmTitleObj", "frmPopupObj", "frmGraffitiStateObj",
"frmGadgetObj", "frmScrollBarObj")[$object_type];
$line .= " $type";
if ($object_type == frmControlObj)
{
my ($obj_ptr) = FrmGetObjectPtr ($form, $ii);
my ($address, $label) = CtlGetLabel($obj_ptr);
$line .= " \"$label\"";
}
elsif ($object_type == frmLabelObj)
{
my ($label_id) = FrmGetObjectId ($form, $ii);
my ($address, $label) = FrmGetLabel($form, $label_id);
$line .= " \"$label\"";
}
elsif ($object_type == frmTitleObj)
{
my ($address, $title) = FrmGetTitle($form,);
$line .= " \"$title\"";
}
else
{
$line .= " <no label>";
}
my (%bounds) = FrmGetObjectBounds($form, $ii);
$line .= " ($bounds{left}, $bounds{top}, $bounds{right}, $bounds{bottom})";
print "$line\n";
}
}
if (0)
{
$err = HostSessionClose ("");
printf ("HostSessionClose() = 0x%08X\n", $err);
$err = HostSessionQuit ();
printf ("HostSessionQuit() = 0x%08X\n", $err);
}
if (0)
{
HostGremlinNew (0, 3, 0, -1, 10000, "Memo Pad") == 0 || die "HostGremlinNew failed, stopped";
}
EmRPC::CloseConnection();