#ifndef PBCMD_H
#define PBCMD_H

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <linux/can.h>
#include <linux/can/raw.h>

#define  OK         0
#define  BAD_SOCK  -1      // Socket comms failed
#define  BAD_OPTS  -2      // Inconsistent option values

// Battery Controller Command functions
//
int   bender(int argc, char** argv);  // bender
int reset_bc(int argc, char** argv);  // reset battery controller

// Spring Controller Command functions
//
int     pump(int argc, char** argv);  // pump on or off
int    valve(int argc, char** argv);  // valve on or off
int reset_sc(int argc, char** argv);  // reset spring controller

// Power Controller Command functions
//
int    scale(int argc, char** argv);  // set scale 0 to 6.5535
int  retract(int argc, char** argv);  // set retract 0 to 6.5535
int     vmax(int argc, char** argv);  // set vmax 0 to 655.35
int     imax(int argc, char** argv);  // set vmax 0 to 131.068
int      bus(int argc, char** argv);  // set the bus on or off
int      scm(int argc, char** argv);  // set the sto pcharge mode on or off
int reset_pc(int argc, char** argv);  // reset power controller
int     gain(int argc, char** argv);  // set the gs gain
int   target(int argc, char** argv);  // set the gs target

// Rudder Controller Command functions
//
int     rcmode(int argc, char** argv);  //
int      rcpos(int argc, char** argv);  //
int   rctarget(int argc, char** argv);  //
int      rchdg(int argc, char** argv);  //
int   rcfilter(int argc, char** argv);  //
int   rcperiod(int argc, char** argv);  //
int    rcpgain(int argc, char** argv);  //
int    rcigain(int argc, char** argv);  //
int    rcdgain(int argc, char** argv);  //
int   rcmaxpos(int argc, char** argv);  //
int rcdeadband(int argc, char** argv);  //
int    rcreset(int argc, char** argv);  //

#endif
