#ifndef COMMON_H #define COMMON_H #if !defined _WIN32 && !defined __CYGWIN__ //linux: #include #include #include #include #include #include #include #include #include #include #include #else //windows #include #include #include #include #include #include #include #endif #include #include #include #include #include #include #include #include #include "strings.h" #include "instructions.h" typedef unsigned long DWORD; typedef unsigned short WORD; typedef unsigned char BYTE; #ifdef OPGUI #define _APPNAME "OPGUI" #include //to use the same code of windows version #define PrintMessage1(s,p) {sprintf(str,s,p); PrintMessage(str);} #define PrintMessage2(s,p1,p2) {sprintf(str,s,p1,p2); PrintMessage(str);} #define PrintMessage3(s,p1,p2,p3) {sprintf(str,s,p1,p2,p3); PrintMessage(str);} #define PrintMessage4(s,p1,p2,p3,p4) {sprintf(str,s,p1,p2,p3,p4); PrintMessage(str);} #define PrintStatus(s,p1,p2) {sprintf(str,s,p1,p2); gtk_statusbar_push(GTK_STATUSBAR(status_bar),statusID,str);while (gtk_events_pending ()) gtk_main_iteration();} #define PrintStatusSetup() //only needed for console version #define PrintStatusEnd() //only needed for console version #define PrintStatusClear() gtk_statusbar_push(GTK_STATUSBAR(status_bar),statusID,""); extern int statusID; extern GtkWidget *status_bar; void PrintMessage(const char *msg); #else #define _APPNAME "OP" #define _CMD //to use the same code of windows version #define PrintMessage printf #define PrintMessage1 printf #define PrintMessage2 printf #define PrintMessage3 printf #define PrintMessage4 printf #define PrintStatus(s,p1,p2) printf("\b\b\b\b%3d%%",p1); fflush(stdout); #define PrintStatusSetup() printf(" "); #define PrintStatusEnd() printf("\b\b\b\b"); #define PrintStatusClear() //only for GUI #endif #define COL 16 //Version defined in makefile #if !defined VERSION #define VERSION "unknown" #endif #define G (12.0/34*1024/5) //=72,2823529412 #define LOCK 1 #define FUSE 2 #define FUSE_H 4 #define FUSE_X 8 #define CAL 16 #define SLOW 256 #if !defined _WIN32 && !defined __CYGWIN__ //Linux #define SYSNAME "Linux" #define DIMBUF 64 DWORD GetTickCount(); extern unsigned char bufferU[128],bufferI[128]; #else //Windows #define SYSNAME "Windows" #define DIMBUF 64 extern unsigned char bufferU0[128],bufferI0[128]; extern unsigned char *bufferU,*bufferI; extern DWORD NumberOfBytesRead,BytesWritten; extern ULONG Result; extern HANDLE WriteHandle,ReadHandle; extern OVERLAPPED HIDOverlapped; extern HANDLE hEventObject; #endif extern char str[4096]; extern int saveLog; extern char** strings; extern int fd; extern int saveLog,programID,MinDly,load_osccal,load_BKosccal; extern int use_osccal,use_BKosccal; extern int load_calibword,max_err; extern int AVRlock,AVRfuse,AVRfuse_h,AVRfuse_x; extern int ICDenable,ICDaddr; extern int FWVersion,HwID; extern FILE* logfile; extern char LogFileName[512]; extern char loadfile[512],savefile[512]; extern WORD *memCODE_W; extern int size,sizeW,sizeEE,sizeCONFIG,sizeUSERID; extern unsigned char *memCODE,*memEE,memID[64],memCONFIG[48],memUSERID[8]; extern double hvreg; extern int RWstop; int StartHVReg(double V); void msDelay(double delay); void DisplayEE(); void PrintMessageI2C(const char *msg); int CheckV33Regulator(void); void OpenLogFile(void); void WriteLogIO(); void CloseLogFile(); unsigned int htoi(const char *hex, int length); void PacketIO(double delay); #endif // COMMON_H