/** * Initialization code. */ void busInit(void) { BYTE i; //Initialize busInfo structure with configured values from EEPROM memclr(&busInfo, sizeof(busInfo)); //Clear busInfo structure busInfoInit(); //Initialze serial buses serInit(); #if defined(BRD_SBC65EC) ser2Init(); #endif i2cBusInit(); /* debugPutGenMsg(2); //@mxd:2:%s debugPutRomStringXNull((ROM char*)"Bus Ser1 Txbuf = 0x"); debugPutByteHex( (BYTE)(((WORD)busInfo.buf[BUSID_SER1].txBuf)>>8) ); debugPutByteHex( (BYTE)busInfo.buf[BUSID_SER1].txBuf ); debugPutByte(0); //Null terminate string debugPutGenMsg(2); //@mxd:2:%s debugPutRomStringXNull((ROM char*)"Bus Ser1 Rxbuf = 0x"); debugPutByteHex( (BYTE)(((WORD)busInfo.buf[BUSID_SER1].rxBuf)>>8) ); debugPutByteHex( (BYTE)busInfo.buf[BUSID_SER1].rxBuf ); debugPutByte(0); //Null terminate string */ #if (DEBUG_BUS >= LOG_ERROR) debugPutMsg(1); //@mxd:1:Initialized Serial Buses #endif }
/** * This function is a "callback" from HTTPServer task. Whenever a remote node performs interactive * GET task on page that was served, HTTPServer calls this functions. Use HTTPGetParam() * to get all name-value parameters. * * @param httpInfo Socket that is currently receiving this HTTP command * @param rqstRes Name of the Requested resource - GET command's action. All characters are * in uppercase! */ void HTTPExecGetCmd(HTTP_INFO* httpInfo, BYTE* rqstRes) { BYTE param[64]; WORD wUpdate; //Contains CMD_UD_XXX flags indicating what has to be updated //Used as input AND output parameter for HTTPGetParams. // - Input parameter indicates size of param buffer // - On return of HTTPGerParam() valueIdx will contain index of value string in param BYTE valueIdx; BYTE moreParams; BYTE paramCount; //The number of parameters (name-value pairs) we have received BYTE user; BYTE tmp; BYTE executed; //Indicates if the command has been executed already or not #if (DEBUG_HTTPEXEC >= LOG_DEBUG) debugPutMsg(1); //@mxd:1:HTTPExecGetCmd() called for file %s debugPutString(rqstRes); #endif wUpdate = 0; //Clear all update flags paramCount = 0; //Get the current user logged in for this HTTP connection user = HTTPGetCurrentUser(httpInfo); //Get next name-value parameter do { valueIdx = (BYTE)sizeof(param); //Input parameter is size of param buffer //Get name-value parameters. Returns true if there are more name-value parameters to follow //- Pointer to Name parameter = ¶m[0] //- Pointer to Value parameter = ¶m[valueIdx] moreParams = HTTPGetParam(httpInfo->socket, param, &valueIdx); paramCount++; executed = 0; //Current name-value command has not been executed yet ///////////////////////////////////////////////// //We received a general command with value if (param[0] == CMDGROUP_GENERAL) { #if (DEBUG_CMD >= LOG_DEBUG) debugPutMsg(8); //@mxd:8:Received General Command #endif //The second character of the name part of the name-value pair will be the "Command Code". switch(param[1]) { case CMDCODE_GEN_PASSWORD: executed = 1; //Indicates that the command has been executed // This command is NOT used any more, seeing that we now use HTTP Authentication break; case CMDCODE_GEN_USERNAME: executed = 1; //Indicates that the command has been executed // This command is NOT used any more, seeing that we now use HTTP Authentication break; } } ///////////////////////////////////////////////// //We received a general command without value else if (param[0] == CMDGROUP_GENERAL_NOVAL) { #if (DEBUG_CMD >= LOG_DEBUG) debugPutMsg(10); //@mxd:10:Received General Command without value #endif ///////////////////////////////////////////////// // The following commands can ONLY be executed by "Admin" or "Super User" if (user != USER_GUEST) { //The first character of the value part of the name-value pair will be the "Command Code". switch(param[valueIdx]) { //There is no logout command anymore with HTTP Authentication! case CMDCODE_GENNOVAL_LOGOUT: executed = 1; //Indicates that the command has been executed #if (DEBUG_CMD >= LOG_INFO) debugPutMsg(14); //@mxd:14:Received Log Off command #endif //There is no logout command anymore with HTTP Authentication! //Update HTTP_INFO structure's user information //httpInfo->flags.bits.bUserLoggedIn = FALSE; break; } } //The first character of the value part of the name-value pair will be the "Command Code". switch(param[valueIdx]) { //Causes requested to log in, if not already Authenticated case CMDCODE_GENNOVAL_LOGIN: executed = 1; //Indicates that the command has been executed httpInfo->flags.bits.bLoginReq = TRUE; break; } } //If this command has not been executed yet, pass it on to the execNaveValueCmd function if ( !executed) { //Execute the given name-value command wUpdate |= execNameValueCmd(param, ¶m[valueIdx], user); } } while (moreParams); //Network settings have changed if (wUpdate & CMD_UD_NETWORK) { //Reconfigure USART with new value //appcfgNetwork(); } else if (wUpdate & CMD_UD_USART) { //Reconfigure USART with new value appcfgUSART(); appcfgUSART2(); } else if (wUpdate & CMD_UD_CPU_IO) { //Reconfigure IO ports appcfgCpuIO(); } else if (wUpdate & CMD_UD_ADC) { //Reconfigure IO ports appcfgADC(); } else if (wUpdate & CMD_UD_PWM) { //Reconfigure PWM appcfgPWM(); } else if (wUpdate & CMD_UD_XBOARD) { //Reconfigure Expansion Board appcfgXboard(); } else if (wUpdate & CMD_UD_BUSBUF) { //Reconfigure Bus Buffers busInfoInit(); } else if (wUpdate & CMD_UD_BUSNET) { //Reconfigure UDP Buses busNetInit(); } }