00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef SCAN_PRIVATE_H
00017 #define SCAN_PRIVATE_H
00018
00019 #include "ccs.h"
00020 #include "db.h"
00021 #include "tims.h"
00022 #include "timer.h"
00023 #include "err.h"
00024 #include "log.h"
00025 #include "msg.h"
00026 #include "evt.h"
00027
00028 #ifndef MAKE_VXWORKS
00029 #include "ccsRtap.h"
00030 #include "scanCCS.h"
00031 #ifndef CCS_LIGHT
00032 # include <rtap/scan.h>
00033 # define scanOTHER_MANAGER "scanMngr"
00034 #else
00035 # define scanOTHER_MANAGER "RtapScanMngr"
00036 # include "scanLiteInternal.h"
00037 #endif
00038
00039 #endif
00040
00041
00042
00043
00044 #define scanOUT_TASK_NAME "scanOut"
00045 #define scanOUT_TABLE "scan output"
00046 #define scanOUT_TABLE_NO_FIELDS 16
00047 #define scanMAX_PRBX_TYPES 32
00048 #define scanINPUT_TBL_AIN 6
00049 #define scanENV_AIN 14
00050 #define scanPROCNUM_AIN 15
00051 #define scanOUT_EVENT_DELAY 250000
00052 #define scanINPUT_TBL_FIELDS 17
00053
00054
00055
00056
00057 #define scanLAN_POINT "<alias>LAN"
00058
00059
00060
00061
00062 #define SD_DEVICE_STATS ".device stats"
00063 #define SD_DEBUG_MODE ".debug mode"
00064 #define SD_SCANOUT_PROCNUM ".scanOut ProcNum"
00065 #define SD_SCANOUT_ENV ".scanOut environment"
00066 #define SD_RESTART_FLAG ".restart flag"
00067 #define SD_RESTART_DELAY ".restart delay"
00068
00069 #define SI_NO_OF_LCU_FIELDS 7
00070
00071
00072
00073
00074
00075 #define TRANS_ATTEMPTS 0
00076 #define TRANS_SUCCESS 1
00077 #define TIMEOUT_ERR 2
00078 #define CONFIG_ERR 3
00079 #define LCU_ERR 4
00080 #define DEVICE_STATS_SIZE 5
00081
00082
00083
00084
00085 #define scanMESSAGE msgTYPE_SCAN_OFFSET
00086 #define scanREP (scanMESSAGE + 1)
00087 #define scanBUF (scanMESSAGE + 2)
00088 #define scanCONTROL (scanMESSAGE + 3)
00089 #define scanCONTROL_REPLY (scanMESSAGE + 4)
00090
00091
00092
00093
00094 #define scanENABLE 1
00095 #define scanGO 2
00096 #define scanDISABLE 3
00097 #define scanDEL 5
00098 #define scanENABLE_PT 9
00099 #define scanDISABLE_PT 10
00100
00101
00102
00103
00104 #define scanTIMER_CMD "SCANPO"
00105 #define scanEVENT_SEND "SCANEV"
00106 #define scanDES_CMD "SCANDES"
00107
00108
00109
00110
00111 #define POLL 1
00112 #define SRBX 2
00113
00114
00115
00116
00117
00118
00119 typedef struct
00120 {
00121 vltLOGICAL point_control;
00122 vltUINT8 point_status;
00123 vltUINT16 reserved1;
00124 vltUINT16 element_count;
00125 vltUINT16 start_address;
00126 vltUINT8 org_id;
00127 vltUINT8 dbnr;
00128 vltUINT8 bit_position;
00129 vltUINT8 deadband_type;
00130 vltUINT32 eventId;
00131 vltDOUBLE deadband;
00132 vltBYTES4 poll_type_mask;
00133 vltUINT16 scanIn_num;
00134 vltUINT16 reserved2;
00135 vltDBXREF link_address;
00136 vltUINT32 reserved3;
00137 } scanOUTPUT_TABLE_REC;
00138
00139
00140 typedef struct
00141 {
00142 vltUINT16 operation;
00143 vltUINT16 entries;
00144 vltUINT16 devicePlin;
00145 } scanHEADER;
00146
00147
00148 typedef struct
00149 {
00150 ccsTIMEVAL timestamp;
00151 vltUINT16 number;
00152 vltUINT16 devicePlin;
00153 vltUINT16 recMin;
00154 vltUINT16 recMax;
00155 vltINT32 startByte;
00156 vltLOGICAL multiple;
00157 vltUINT8 reserved[3];
00158 } scanBUFHEADER;
00159
00160 typedef struct
00161 {
00162 msgHEADER msgHeader;
00163 union
00164 {
00165 scanBUFHEADER bufHeader;
00166 scanHEADER request;
00167 } type;
00168 char body[msgMAXLEN - sizeof(msgHEADER) - sizeof(scanBUFHEADER) - 1];
00169 } scanMSG;
00170
00171
00172 typedef struct
00173 {
00174 vltDOUBLE deadband;
00175 vltUINT8 deadband_type;
00176 vltUINT8 reserved[7];
00177 } srbxBODY;
00178
00179
00180 typedef struct
00181 {
00182 dbSYMADDRESS attr_name;
00183 vltUINT16 mode;
00184 vltUINT16 entry_in;
00185 vltUINT16 entry_out;
00186 vltUINT16 bufSize;
00187 union {
00188 vltBYTES4 period;
00189 srbxBODY srbxBody;
00190 } body;
00191 } scanBODY;
00192
00193
00194
00195
00196 typedef struct
00197 {
00198 vltUINT16 entry_in;
00199 vltUINT16 entry_out;
00200 vltUINT16 bufSize;
00201 vltUINT8 result;
00202 } scanREPBODY;
00203
00204
00205
00206
00207
00208
00209
00210 typedef struct
00211 {
00212 vltINT8 startDay;
00213 vltINT8 startHour;
00214 vltINT8 startMinute;
00215 vltINT8 startSecond;
00216 vltUINT8 intervalDays;
00217 vltUINT8 intervalHours;
00218 vltUINT16 intervalMins;
00219 vltUINT32 intervalSecs;
00220 vltUINT16 intervalMSecs;
00221 vltUINT16 reserved;
00222 } scan_prbxBODY;
00223
00224 #ifndef MAKE_VXWORKS
00225
00226
00227
00228
00229
00230
00231 typedef struct
00232 {
00233 rtScanInputRecord fixed;
00234 rtUInt16 element_count;
00235 rtUInt16 scanOut_num;
00236 rtUInt8 lcu_deadband_type;
00237 rtUInt8 reserved2;
00238 rtUInt16 reserved3;
00239 rtDouble lcu_deadband;
00240 rtBytes256 remote_name;
00241 } SiLcu;
00242
00243
00244
00245
00246 ccsCOMPL_STAT scanEnaDisAttr (rtSsCqAction action, dbSYMADDRESS attribute[],
00247 vltUINT16 attrNbr, ccsERROR *error);
00248 #endif
00249
00250 #endif