Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------------------------------------
- #include "sio_util.h"
- //---------------------------------------------------------------------------
- typedef unsigned char byte;
- typedef struct _LDCNMOD {
- byte modtype; //module type
- byte modver; //module version number
- byte statusitems; //definition of items to be returned
- byte stat; //status byte
- byte groupaddr; //current group address
- bool groupleader; //TRUE if group leader
- void * p; //pointer to specific module's data structure
- } LDCNMOD;
- #define MAXSIOERROR 3
- //Define PIC baud rate divisors
- #define PB9600 129
- #define PB19200 63
- #define PB57600 20
- #define PB115200 10
- //Module type definitions:
- #define SERVOMODTYPE 0
- #define SERVOHYBTYPE 90
- #define IOMODTYPE 2
- #define STEPMODTYPE 3
- //The following must be created for each new module type:
- // data structure XXXMOD
- // Initializer function NewXXXMod
- // Status reading function GetXXXStat
- // LdcnInit and SendLdcnCmd must be modified to include calls
- // to the two functions above
- #define CKSUM_ERROR 0x02 //Checksum error bit in status byte
- #define MAXNUMMOD 33
- //Initialization and shutdown
- void InitVars(void);
- void LdcnSetStopCtrl(byte addr, byte mode);
- DLLENTRY(int) LdcnInit(char *portname, unsigned int baudrate);
- DLLENTRY(int) LdcnFullInit(char *portname, unsigned int baudrate);
- DLLENTRY(int) LdcnRestoreNetwork(char *portname, unsigned int baudrate);
- DLLENTRY(BOOL) LdcnSendCmd(byte addr, byte cmd, char *datastr, byte n);
- DLLENTRY(void) FixSioError();
- DLLENTRY(void) LdcnShutdown(void);
- //Module type independant commands (supported by all module types)
- DLLENTRY(BOOL) LdcnSetGroupAddr(byte addr, byte groupaddr, bool leader);
- DLLENTRY(BOOL) LdcnDefineStatus(byte addr, byte statusitems);
- DLLENTRY(BOOL) LdcnReadStatus(byte addr, byte statusitems);
- DLLENTRY(BOOL) LdcnChangeBaud(byte groupaddr, unsigned int baudrate);
- DLLENTRY(BOOL) LdcnSynchInput(byte groupaddr);
- DLLENTRY(BOOL) LdcnNoOp(byte addr);
- DLLENTRY(BOOL) LdcnHardReset();
- DLLENTRY(BOOL) LdcnResetDevice(byte addr);
- //Retrieve module type independant data from a module's data structure
- DLLENTRY(byte) LdcnGetStat (byte addr);
- DLLENTRY(byte) LdcnGetStatItems(byte addr);
- DLLENTRY(byte) LdcnGetModType (byte addr);
- DLLENTRY(byte) LdcnGetModVer (byte addr);
- DLLENTRY(byte) LdcnGetGroupAddr(byte addr);
- DLLENTRY(BOOL) LdcnGroupLeader (byte addr);
- DLLENTRY(HANDLE) GetComPort();
- DLLENTRY(int) GetSioError();
- DLLENTRY(int) IsBusy();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement