#define IDSIZE 20 #define MFR_SIZE 80 #define RESPONSE_BUF_SIZE 300 typedef enum { PCB_SEND_CAPS, PCB_SEND_PARAMS, PCB_RECV_PARAMS } PCBTYPE; typedef struct { USHORT uPCBSize; // must set this BOOL fEFAX; // accepts EFAX linearized file format BYTE Resolution; // one or more of the RES_ #defines below BYTE Encoding; // one or more of the ENCODE_ #defines below BYTE PageWidth; // one of the WIDTH_ #defines below BYTE PageLength; // one of the LENGTH_ #defines below BYTE MinScan; // one of the MINSCAN_ #defines below // used only in RecvCaps PCBTYPE pcbtype; // BOOL fG3image; BOOL fG3Poll; // has G3 file available for polling BOOL fNewT30; // handles PWD/SEP/SUB CHAR szID[IDSIZE+2]; // Must use '0' to '9' or ' '(space) only BOOL fBinary; // accepts binary files inside linearized EFAX messages BOOL fRambo; // accepts Rambo inside linearized EFAX messages BOOL fExtCapsSupport;// supports extended caps BOOL fExtCapsAvail; // has extended caps available for polling // add more as they become clear BYTE Baud; } PCB, far* LPPCB, near* NPPCB; // Array to hold parsed class2 command strings. #define MAX_CLASS2_COMMANDS 10 #define MAX_PARAM_LENGTH 50 typedef struct cl2_command { USHORT comm_count; BYTE command[MAX_CLASS2_COMMANDS]; BYTE parameters[MAX_CLASS2_COMMANDS][MAX_PARAM_LENGTH]; } CL2_COMM_ARRAY; // structure for modem specific hacks typedef struct { // Fields for manufacturer, model, and revision number CHAR szATI[MFR_SIZE]; CHAR szMFR[MFR_SIZE]; CHAR szMDL[MFR_SIZE]; CHAR szREV[MFR_SIZE]; //Fields for specific actions to take //BOR values to use USHORT iReceiveBOR; USHORT iSendBOR; //Value to enable data to be recieved after FDR CHAR szDC2[2]; BOOL bIsSierra; BOOL bIsExar; BOOL fSkipCtrlQ; // DONT wait for CtrlQ after FDT BOOL fSWFBOR; // Implement AT+FBOR=1 in software (i.e., bitreverse) // Only invoked on send(recv) if iSendBOR(iRecvBOR) // is 1 (in which it will send AT+FBOR=0). } MFRSPEC, far *LPMFRSPEC; /**-------------------- from MODEM.H -----------------------------**/ typedef char C2SZ; typedef char *C2PSTR; /**-------------------- from COMMODEM.H -----------------------------**/ #define MAXPHONESIZE 60 #define DIALBUFSIZE MAXPHONESIZE + 10 /**-------------------- modelled after MODEMINT.H -----------------------------**/ // used for Resync type stuff. RepeatCount = 2 // This has to be multi-line too, because echo could be on and // we could get the command echoed back instead of response! // Looks like even 330 is too short for some modems.. #define Class2SyncModemDialog(pTG, s, l, w) \ Class2iModemDialog(pTG, (s), (l), 550, TRUE, 2, (C2PSTR)(w), (C2PSTR)(NULL)) // has to be >1 try & multi-line because we can have RING noises // coming in at anytime while on-hook /** #define Class2LocalModemDialog(s, l, w) \ Class2iModemDialog((s), (l), 1500, TRUE, 2, (C2PSTR)(w), (C2PSTR)(NULL)) **/