Hello, Everyone! I'm studying the Bosch XDK 110, and I'm having difficults in connecting to an Access Point. I've read some manuals (Wi-Fi and HTTP guides) and another forum (HTTP - LEGIC XDK) explaining the necessary codes to run the application, but I didn't get any success in aplying these instructions. Could you guys help me, please? Best Regards. Code: /* module includes ********************************************************** */ /* own header files */ #include "XdkAppInfo.h" #undef BCDS_MODULE_ID /* Module ID define before including Basics package*/ #define BCDS_MODULE_ID XDK_APP_MODULE_ID_APP_CONTROLLER /* own header files */ #include "AppController.h" /* system header files */ #include <stdio.h> /* additional interface header files */ #include "BCDS_Assert.h" #include "BCDS_CmdProcessor.h" #include "XDK_Utils.h" #include "FreeRTOS.h" #include "task.h" /* additional interface header files */ #include "BCDS_CmdProcessor.h" #include "FreeRTOS.h" #include "BCDS_WlanConnect.h" #include "BCDS_NetworkConfig.h" #include "BCDS_ServalPal.h" #include "BCDS_ServalPalWiFi.h" #include "Serval_HttpClient.h" #include "PIp.h" #include "PAL_Initialize_ih.h" #include "PAL_socketMonitor_ih.h" /* --------------------------------------------------------------------------- | * HANDLES ******************************************************************* | * -------------------------------------------------------------------------- */ static CmdProcessor_T * AppCmdProcessor;/**< Handle to store the main Command processor handle to be used by run-time event driven threads */ static CmdProcessor_T CmdProcessorHandleServalPAL; /* --------------------------------------------------------------------------- | * VARIABLES ***************************************************************** | * -------------------------------------------------------------------------- */ #define TASK_PRIORITY_SERVALPAL_CMD_PROC UINT32_C(3) #define TASK_STACK_SIZE_SERVALPAL_CMD_PROC UINT32_C(600) #define TASK_QUEUE_LEN_SERVALPAL_CMD_PROC UINT32_C(10) /* --------------------------------------------------------------------------- | * EXECUTING FUNCTIONS ******************************************************* | * -------------------------------------------------------------------------- */ //Configuring the PAL Modules static Retcode_T ServalPalSetup(void) { Retcode_T returnValue = RETCODE_OK; returnValue = CmdProcessor_Initialize(&CmdProcessorHandleServalPAL, (char *)"Serval PAL", TASK_PRIORITY_SERVALPAL_CMD_PROC, TASK_STACK_SIZE_SERVALPAL_CMD_PROC, TASK_QUEUE_LEN_SERVALPAL_CMD_PROC); /* serval pal common init */ if (RETCODE_OK == returnValue) { returnValue = ServalPal_Initialize(&CmdProcessorHandleServalPAL); } if (RETCODE_OK == returnValue) { returnValue = ServalPalWiFi_Init(); } if (RETCODE_OK == returnValue) { ServalPalWiFi_StateChangeInfo_T stateChangeInfo = { SERVALPALWIFI_OPEN, 0}; returnValue = ServalPalWiFi_NotifyWiFiEvent(SERVALPALWIFI_STATE_CHANGE, &stateChangeInfo); } return returnValue; } //Connecting to WiFi void networkSetup(void) { WlanConnect_SSID_T connectSSID = (WlanConnect_SSID_T) "iPhone"; WlanConnect_PassPhrase_T connectPassPhrase = (WlanConnect_PassPhrase_T) "hobbit213"; WlanConnect_Init(); NetworkConfig_SetIpDhcp(0); WlanConnect_WPA(connectSSID, connectPassPhrase, 0); Retcode_T retStatusConnect; retStatusConnect = (Retcode_T) WlanConnect_WPA(connectSSID, connectPassPhrase, NULL); if (retStatusConnect == RETCODE_OK){ printf("Connected successfully.\n\r"); } else { printf("Not Connected.\n\r"); } ServalPalSetup(); } //Reading the HTTP Response static retcode_t onHTTPResponseReceived(HttpSession_T *httpSession, Msg_T *msg_ptr, retcode_t status) { (void) (httpSession); if (status == RC_OK && msg_ptr != NULL) { Http_StatusCode_T statusCode = HttpMsg_getStatusCode(msg_ptr); char const *contentType = HttpMsg_getContentType(msg_ptr); char const *content_ptr; unsigned int contentLength = 0; HttpMsg_getContent(msg_ptr, &content_ptr, &contentLength); char content[contentLength+1]; strncpy(content, content_ptr, contentLength); content[contentLength] = 0; printf("HTTP RESPONSE: %d [%s]\r\n", statusCode, contentType); printf("%s\r\n", content); } else { printf("Failed to receive HTTP response!\r\n"); } return(RC_OK); } //Feedback from sending the request static retcode_t onHTTPRequestSent(Callable_T *callfunc, retcode_t status) { (void) (callfunc); if (status != RC_OK) { printf("Failed to send HTTP request!\r\n"); } return(RC_OK); } //Creating and sending the message void createAndSendGetMessage(void){ // assemble the request message Ip_Address_T destAddr; //PAL_getIpaddress ((uint8_t*)"/ip", &destAddr); Ip_convertOctetsToAddr(23, 22, 14, 18, &destAddr); Ip_Port_T port = Ip_convertIntToPort(80); Msg_T* msg_ptr; HttpClient_initRequest(&destAddr, port, &msg_ptr); HttpMsg_setReqMethod(msg_ptr, Http_Method_Get); HttpMsg_setReqUrl(msg_ptr, "/ip"); // HttpMsg_setHost(msg_ptr, "httpbin.org"); // send the request static Callable_T sentCallable; Callable_assign(&sentCallable, &onHTTPRequestSent); HttpClient_pushRequest(msg_ptr, &sentCallable, &onHTTPResponseReceived); } /* --------------------------------------------------------------------------- | * BOOTING- AND SETUP FUNCTIONS ********************************************** | * -------------------------------------------------------------------------- */ static void AppControllerEnable(void * param1, uint32_t param2) { BCDS_UNUSED(param1); BCDS_UNUSED(param2); /* Enable necessary modules for the application and check their return values */ createAndSendGetMessage(); } static void AppControllerSetup(void * param1, uint32_t param2) { BCDS_UNUSED(param1); BCDS_UNUSED(param2); Retcode_T retcode = RETCODE_OK; /* Setup the necessary modules required for the application */ networkSetup(); HttpClient_initialize(); retcode = CmdProcessor_Enqueue(AppCmdProcessor, AppControllerEnable, NULL, UINT32_C(0)); if (RETCODE_OK != retcode) { printf("AppControllerSetup : Failed \r\n"); Retcode_RaiseError(retcode); assert(0); /* To provide LED indication for the user */ } } void AppController_Init(void * cmdProcessorHandle, uint32_t param2) { BCDS_UNUSED(param2); Retcode_T retcode = RETCODE_OK; if (cmdProcessorHandle == NULL) { printf("AppController_Init : Command processor handle is NULL \r\n"); retcode = RETCODE(RETCODE_SEVERITY_ERROR, RETCODE_NULL_POINTER); } else { AppCmdProcessor = (CmdProcessor_T *) cmdProcessorHandle; retcode = CmdProcessor_Enqueue(AppCmdProcessor, AppControllerSetup, NULL, UINT32_C(0)); } if (RETCODE_OK != retcode) { Retcode_RaiseError(retcode); assert(0); /* To provide LED indication for the user */ } /*PAL_initialize(); PAL_socketMonitorInit();*/ } /** ************************************************************************* */
... View more