/* ROVSYS.H  Rover System Parameters and Global Variables
*            (and stuff I have no idea where to put)
*/

#ifndef __rovsys_H
#define __rovsys_H

/*  Calibration Coeficients  */

#define BATTCAL  	1512
#define HPCURRCAL  	528
#define LPCURRCAL  	52.8
#define GFVOLTCAL  	3276
#define TILTX_CAL 	364
#define TILTX_OFFSET	45
#define TILTY_CAL  	364
#define TILTY_OFFSET	45
#define CMVANECAL 	45.5
#define CMVANE_OFFSET	180
#define AUXANACAL	6552
#define ODOCAL  	36.5


/* Timers */

#define TURN_TIMEOUT		 6000   /* Tens of seconds */
#define TURN_DATA_RATE		  100
#define TRANSIT_TIMEOUT         18000
#define TRANSIT_DATA_RATE	  100


/*  Misc. Rack Stuff */

#define RACK_TIMEOUT            60000      /* Tens of seconds */
#define RACK_DATA_RATE		  500
#define LEADSCREW_DIFF_MAX	2


/* Current Meter */

#define CURRMET_UP_POS		512		/* 4 ticks per shaft rev. */
#define CM_DATA_RATE		60000       /* Tens of seconds */
#define CMMOT_DATA_RATE		  500
#define CMMOT_TIMEOUT           60000

/* FILMCAM PARAMETERS */

#define FILMCAM_RATE		  500
#define		TRIGGERTIME	200   /* msec */


/* Analog Channel Assignments */

#define BATTCHAN	0
#define HPCURRCHAN	1
#define LPCURRCHAN	2
#define GFVOLTCHAN	3
#define TILTX_CHAN	4
#define TILTY_CHAN	5
#define CMVANECHAN	6
#define AUXANACHAN	7


/* TPU Channel Assignments */

#define		FILMCAM		1
#define		AUXOUT		2
#define		LEADSCREW2	3
#define		LEADSCREW1	4
#define		ODOMETER	5
#define		CMMOT_SHAFT	6
#define		TRANSPOND_IN	7
#define		TRANSPOND_OUT	8
#define		CMROTOR		9
#define		CMROTOR_PWR	10
#define		CMVANE_PWR	11
#define		TPUSERTX	12
#define		TPUSERRX	13


/* Power Relay Board Definitions */

#define 	MOT1A	0x1   /* Sets pin 1 of output port */
#define		MOT1B	0x2
#define 	MOT2A	0x4
#define		MOT2B	0x8
#define 	AUX1	0x10
#define		AUX2	0x20
#define 	AUX3	0x40  /* Sets pin 7 of output port */


/* Power Control Board Definitions */

#define		POWER1		0x1
#define		POWER2   	0x2
#define		POWER3		0x4
#define		POWER4 		0x8
#define		POWER5  	0x10
#define		POWER6  	0x20
#define		POWER7 		0x40
#define		POWER8 		0x80


/* Input Port Definitions */

#define		RACKUP		0x1
#define		LIMITPAD1	0x2
#define		LIMITPAD2	0x4
#define		LIMITUP		0x8
#define		LIMITDWN	0x10
#define		CMLIMIT 	0x20

/********************** Rover Activity Codes *************/

#define TRANSIT			1
#define TURN_RIGHT		2
#define TURN_LEFT		3
#define RACK_DOWN		10
#define RACK_UP			11
#define CURRMET_UP		20
#define CURRMET_DOWN		21
#define CURRMET_DATA		22

/********************** Rover Error Codes **************/

#define TRANSIT_TIMEOUT_ERR		1000
#define TURN_TIMEOUT_ERR		1010
#define RACK_LIMITUP_ERR		1020
#define RACK_LIMITDWN_ERR		1021
#define RACK_LEADSCREW_ERR		1022
#define RACK_TIMEOUT_ERR		1023
#define RACK_JAM_ERR			1024
#define CMMOT_TIMEOUT_ERR               1025
#define CMMOT_JAM_ERR			1026





/********************  GLOBAL VARIABLES *********************/

/* In ROVINT.C */
extern int g_odometer_ticks, g_leadscrew1_ticks, g_leadscrew2_ticks;
extern int g_cmmot_shaft_ticks, g_cmrotor_ticks, g_transpond_in;
/* In ROVLIB.C */

/* In ROVFILE.C */
extern long g_memsize;
extern short g_filetype, g_filecount;
extern short g_curr_speed, g_curr_dir, g_heading, g_disk_file;
#endif