1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
/*
Copyright (C) 2004 T. Scott Dattalo
This file is part of gpsim.
gpsim is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
gpsim is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with gpsim; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/*
Scripting
client2.cc - a program to demonstrate gpsim scripting.
*/
#include <stdio.h>
#include <stdlib.h>
#include "client_interface.h"
#define PORT 0x1234
//========================================================================
//
//
//
int main(int argc, char **argv)
{
bool bPassed = true; // regression test results - assume we pass
ClientSocketInterface *sock = new ClientSocketInterface(argc > 2 ? argv[2] : 0, PORT);
/*
Set up.
Since we are controlling the simulator entirely from a script, there really is
not much need for the command line output it provides. So we'll turn it off
by setting the simulator attribute 'sim.verbosity' to zero.
*/
sock->WriteSymbolUInt32("sim.verbosity", 0);
/*
The simulator's command line parser is still available for us to use.
So we'll use it to load the source code and to set a break point.
*/
//sock->SendCmd("load s gensquares.cod\n");
unsigned int h_reg1 = sock->CreateLinkUInt32("reg1");
/*
start running
*/
//sock->SendCmd("run\n");
if (!h_reg1) {
printf("unable to create handles\n");
delete sock;
exit(1);
}
unsigned int reg1=0;
for (unsigned int i = 0; i < 256; i++) {
printf("query link\n");
sock->WriteToLinkUInt32(h_reg1, i);
printf("query link got %u\n", i);
if (! sock->QueryLinkUInt32(h_reg1,reg1) )
printf("failed to decode reg1\n");
if (i != reg1)
bPassed = false;
}
/*
release the handle
*/
sock->RemoveLink(h_reg1);
sock->WriteSymbolUInt32("sim.verbosity", 1);
delete sock;
if(bPassed)
printf("The simulation passed!\n");
else
printf("The simulation failed\n");
return 0;
}
|