projectdefs.h

Go to the documentation of this file.
00001 // ////////////////////////////////////////////////////////////////////////////
00002 // ////////////////////////////////////////////////////////////////////////////
00023 
00024 #ifndef PROJECTDEFS_H
00025 
00026 #define     PROJECTDEFS_H
00027 
00029 // Includes
00031 
00032 #include    "appldefs.h"
00033 
00034 
00036 // Defines
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 // Typedefs
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 // Function prototypes
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

Generated on Sun Nov 27 20:02:38 2011 for eWicht by  doxygen 1.5.5