00001 #ifndef LSF_SERIAL_H
00002 #define LSF_SERIAL_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "lsfControl.h"
00018
00019 typedef struct
00020 {
00021 lsfSTATE state;
00022 lsfSUBSTATE subState;
00023 vltLOGICAL init;
00024 vltLOGICAL simulation;
00025 vltINT32 timeout;
00026
00027 vltINT32 fd;
00028 vltLOGICAL isTyCo;
00029 vltLOGICAL isMultiple;
00030 vltLOGICAL isPlc;
00031 void *plcConfig;
00032 } lsfSERIAL_ENTRY;
00033
00034 typedef struct
00035 {
00036 void *ctrlData;
00037 void *userData;
00038 lsfSTATE state;
00039 lsfSUBSTATE subState;
00040 vltLOGICAL init;
00041 vltLOGICAL simulation;
00042 vltINT32 timeout;
00043 vltINT32 numSerials;
00044
00045 vltBYTES20 *serialNames;
00046 char *attrTable[lsfMAX_DEVICES+1];
00047 lsfSERIAL_ENTRY *serialTable[lsfMAX_DEVICES];
00048 } lsfSERIAL_DATA;
00049
00050 typedef ccsCOMPL_STAT lsfSERIAL_HOOK( IN lsfSERIAL_DATA *serialData,
00051 IN const char *serialName,
00052 OUT ccsERROR *error);
00053
00054 #define lsfSerialGetData(ptr) \
00055 (lsfSERIAL_DATA *)lsfControlGetDevData((lsfCONTROL_DATA *)(((lsfCONTROL_DATA *)ptr)->ctrlData),lsfDEVICE_SERIAL)
00056 #define lsfSerialGetUserData(ptr) \
00057 (lsfSerialGetData(ptr))->userData
00058
00059 ccsCOMPL_STAT lsfSerialConstructor ( IN const char *swdName,
00060 IN lsfCONTROL_DATA *controlData,
00061 IN const char *serialNames[],
00062 OUT ccsERROR *error );
00063 void lsfSerialDestructor ( IN lsfCONTROL_DATA *controlData );
00064
00065 ccsCOMPL_STAT lsfSerialOff ( IN lsfSERIAL_DATA *serialData,
00066 IN const char *serialName,
00067 OUT ccsERROR *error );
00068 ccsCOMPL_STAT lsfSerialStop ( IN lsfSERIAL_DATA *serialData,
00069 IN const char *serialName,
00070 OUT ccsERROR *error );
00071 ccsCOMPL_STAT lsfSerialInit ( IN lsfSERIAL_DATA *serialData,
00072 IN const char *serialName,
00073 OUT ccsERROR *error );
00074 ccsCOMPL_STAT lsfSerialOnline ( IN lsfSERIAL_DATA *serialData,
00075 IN const char *serialName,
00076 OUT ccsERROR *error );
00077 ccsCOMPL_STAT lsfSerialStandby ( IN lsfSERIAL_DATA *serialData,
00078 IN const char *serialName,
00079 OUT ccsERROR *error );
00080 ccsCOMPL_STAT lsfSerialExit ( IN lsfSERIAL_DATA *serialData,
00081 IN const char *serialName,
00082 OUT ccsERROR *error );
00083 ccsCOMPL_STAT lsfSerialSimulat ( IN lsfSERIAL_DATA *serialData,
00084 IN const char *serialName,
00085 OUT ccsERROR *error );
00086 ccsCOMPL_STAT lsfSerialStopsim ( IN lsfSERIAL_DATA *serialData,
00087 IN const char *serialName,
00088 OUT ccsERROR *error );
00089 ccsCOMPL_STAT lsfSerialSelftest ( IN lsfSERIAL_DATA *serialData,
00090 IN const char *serialName,
00091 OUT ccsERROR *error );
00092 ccsCOMPL_STAT lsfSerialTest ( IN lsfSERIAL_DATA *serialData,
00093 IN const char *serialName,
00094 OUT ccsERROR *error );
00095
00096 ccsCOMPL_STAT lsfSerialRead ( IN lsfSERIAL_DATA *serialData,
00097 IN const char *serialName,
00098 OUT char *names[],
00099 OUT char *buffer[],
00100 OUT ccsERROR *error );
00101 ccsCOMPL_STAT lsfSerialReadNoWait( IN lsfSERIAL_DATA *serialData,
00102 IN const char *serialName,
00103 OUT char *names[],
00104 OUT char *buffer[],
00105 OUT ccsERROR *error );
00106 ccsCOMPL_STAT lsfSerialWrite ( IN lsfSERIAL_DATA *serialData,
00107 IN const char *serialName,
00108 IN char *buffer[],
00109 OUT ccsERROR *error );
00110
00111 ccsCOMPL_STAT lsfSerialClose ( IN lsfSERIAL_DATA *serialData,
00112 IN vltINT32 devIdx,
00113 OUT ccsERROR *error );
00114
00115 vltINT32 lsfPLCGetProtocol ( IN lsfSERIAL_ENTRY *s );
00116 const char *lsfPLCGetProtocolName( IN lsfSERIAL_ENTRY *s );
00117 ccsCOMPL_STAT lsfPLCGetStatus ( IN lsfSERIAL_ENTRY *s );
00118
00119 ccsCOMPL_STAT lsfRK512Get ( IN lsfSERIAL_DATA *serialData,
00120 IN const char *serialName,
00121 IN vltINT32 dataIndex,
00122 IN vltINT32 dataCount,
00123 OUT vltUINT16 data[],
00124 OUT ccsERROR *error );
00125 ccsCOMPL_STAT lsfRK512Set ( IN lsfSERIAL_DATA *serialData,
00126 IN const char *serialName,
00127 IN vltINT32 cmdIndex,
00128 IN vltINT16 cmdValue,
00129 OUT ccsERROR *error );
00130 ccsCOMPL_STAT lsfRK512Rst ( IN lsfSERIAL_DATA *serialData,
00131 IN const char *serialName,
00132 IN vltINT32 cmdIndex,
00133 IN vltINT16 cmdValue,
00134 OUT ccsERROR *error );
00135
00136 ccsCOMPL_STAT lsfEY2400Synchro ( IN lsfSERIAL_DATA *serialData,
00137 IN const char *serialName,
00138 OUT ccsERROR *error );
00139 ccsCOMPL_STAT lsfEY2400Presence ( IN lsfSERIAL_DATA *serialData,
00140 IN const char *serialName,
00141 IN vltINT32 plcNumber,
00142 OUT ccsERROR *error );
00143 ccsCOMPL_STAT lsfEY2400Command ( IN lsfSERIAL_DATA *serialData,
00144 IN const char *serialName,
00145 IN vltINT32 cmdIndex,
00146 IN vltINT16 cmdValue,
00147 OUT void *pData,
00148 OUT ccsERROR *error );
00149
00150 #endif