00001
00002
00023
00024 #ifndef PROJECTDEFS_H
00025
00026 #define PROJECTDEFS_H
00027
00029
00031
00032 #include "appldefs.h"
00033
00034
00036
00038
00040 #define PROJECT_ID SRCP_PROJECT
00041
00043 #define PROJECT_NAME "srcp"
00044
00046 #define PROJECT_SERVICE_NAME "_srcp"
00047
00049 #define PROJECT_DEFAULT_PORT (4303u)
00050
00052 #define SRCP_NAME_MAXLEN 16
00053
00055 #define SRCP_PROTO_MAXLEN 3
00056
00058 #define SRCP_SERVERCACHE_ID 0xFE
00059
00061 #define SRCP_EEPROMSET_ID 0xFF
00062
00064 #define MAX_PROTO_SLOTS 8
00065
00067 #define MAX_SRCP_FUNCTIONS 13
00068
00070 #define MAX_SRCP_SPEEDSTEPS 128
00071
00073 #define SRCP_EEPROMSET_COUNT 32
00074
00076 #define SRCP_GLEEPROMSET_COUNT 16
00077
00079 #define SRCP_GAEEPROMSET_COUNT 4
00080
00082 #define SRCP_EEPROMSET_IDX_MASK 0x0F
00083
00085 #define SRCP_EEPROMSET_GA_MASK 0x10
00086
00087
00092 #define SRCP_CONFIG_EEPROM_ADD (0x0200u)
00093
00094
00099 #define SRCP_PROTOS_EEPROM_ADD (0x0300u)
00100
00101
00106 #define SRCP_SETS_EEPROM_ADD (0x0800u)
00107
00108
00109
00111 #define PROJECT_SOCKET_CONFIGURATION {TCP_PURPOSE_DEFAULT, TCP_ETH_RAM, 300, 1500}, \
00112 {TCP_PURPOSE_DEFAULT, TCP_ETH_RAM, 300, 1000}
00113
00115 #define PROJECT_INITIAL_INIT SRCPInitialInit
00116
00118 #define PROJECT_LOCO_DIR_MODE_HAS_CHANGED SRCPLocoDirModeHasChanged
00119
00121 #define PROJECT_HANDLE_SERVER_CONNECTION SRCPHandleServerConnection
00122
00124 #define PROJECT_RESET_TO_FACTORY SRCPRestoreToFactory
00125
00127 #define PROJECT_PREPARE_CONNECTION SRCPPrepareConnection
00128
00130 #define PROJECT_START_DISCONNECT SRCPStartDisconnect
00131
00133 #define PROJECT_IS_CONNECTED SRCPIsConnected
00134
00136 #define PROJECT_MAIN SRCPMain
00137
00139 #define PROJECT_WEBSITES {STRTBLID_SYSTEMSTATE, "index.htm", NAV_CLOSE}, \
00140 {STRTBLID_COMMON, "common.htm", NAV_CLOSE}, \
00141 {STRTBLID_SRCP, "srcp.htm", NAV_SUBNAV}, \
00142 {STRTBLID_LOCO_PROTOCOLS, "locoproto.htm", NAV_CLOSE}, \
00143 {STRTBLID_LOCO_DATABASE, "locos.htm", NAV_CLOSE}, \
00144 {STRTBLID_ACC_PROTOCOLS, "accproto.htm", NAV_CLOSE}, \
00145 {STRTBLID_ACC_DATABASE, "accs.htm", NAV_SUBNAVEND}, \
00146 {STRTBLID_FILE, "file.htm", NAV_END},
00147
00148
00150
00152
00159 typedef struct __attribute__((__packed__))
00160 {
00162 struct
00163 {
00165 BYTE bGLAskForLock : 1;
00166
00168 BYTE bGAAskForLock : 1;
00169
00171 BYTE bGLLock : 1;
00172
00174 BYTE bGALock : 1;
00175
00177 BYTE bGLAskForProto : 1;
00178
00180 BYTE bGAAskForProto : 1;
00181
00182 } sFlags;
00183
00185 BYTE u8Reserved1;
00186
00189 BYTE u8DefaultGLProtoId;
00190
00192 BYTE u8Reserved2;
00193
00195 BYTE u8DefaultGAProtoId;
00196
00199 LONG s32GADelay;
00200 } SPSRCPCONFIG;
00201
00202
00205 typedef struct __attribute__((__packed__)) _PERS_PROTOCOL_CONFIG
00206 {
00207 WORD u16MinAdd;
00208 WORD u16MaxAdd;
00209
00211 struct
00212 {
00213 BOOL bGL;
00214 BOOL bActive;
00215 } sFlags;
00216
00217 BYTE u8Bus;
00218 BYTE au8Desc[SRCP_NAME_MAXLEN+1];
00219 BYTE au8Proto[SRCP_PROTO_MAXLEN+1];
00220
00222 union
00223 {
00225 struct
00226 {
00227 BYTE u8MaxSteps;
00228 BYTE u8NrFunc;
00229 } sGL;
00230
00232 struct
00233 {
00234 BYTE u8MinP;
00235 BYTE u8MaxP;
00236 } sGA;
00237 } uSpec;
00238 } SPPROTOCOL;
00239
00240
00242 typedef struct __attribute__((__packed__))
00243 {
00245 struct
00246 {
00247 BOOL bGL;
00248 BOOL bActive;
00249 } sFlags;
00250
00252 BYTE au8Name[SRCP_NAME_MAXLEN+1];
00253
00255 DWORD u32Address;
00256
00258 BYTE u8BusNr;
00259
00261 BYTE au8Proto[SRCP_PROTO_MAXLEN+1];
00262
00264 union
00265 {
00267 struct
00268 {
00269 BYTE u8MaxSteps;
00270 BYTE u8NrFunc;
00271 WORD u16MaxV;
00272
00273 DWORD u32FuncToggleMask;
00274 } sGL;
00275
00277 struct
00278 {
00279 BYTE u8MinP;
00280 BYTE u8MaxP;
00281 long s32Delay;
00282 } sGA;
00283 } uSpec;
00284 BYTE u8Reserved[15];
00285 } SPSET;
00286
00287
00288
00289
00290
00291
00293 void SRCPRestoreToFactory(void);
00294
00295
00300 BOOL SRCPIsConnected(void);
00301
00302
00306 void SRCPInitialInit(void);
00307
00308
00310 void SRCPStartDisconnect(void);
00311
00312
00314 void SRCPPrepareConnection(void);
00315
00316
00319 APPL_CONNECTING_RETCODE SRCPHandleServerConnection(void);
00320
00321
00324 BOOL SRCPMain(void);
00325
00328 void SRCPLocoDirModeHasChanged(void);
00329
00332 #endif // #ifndef SRCPDEFS_H