Het werkt bijna! hoop ik.
This commit is contained in:
parent
4a3eb3b56b
commit
b232b82ef5
@ -3,7 +3,7 @@
|
||||
#define DEBUG_H
|
||||
|
||||
#define IF_SEVERITY 0
|
||||
#include "debug_if.h"
|
||||
#include "./debug_if.h"
|
||||
|
||||
inline UART_Handle uartHandle;
|
||||
// UART_control(uartHandle, UART_CMD_RXDISABLE, NULL);
|
||||
|
||||
@ -21,7 +21,7 @@ typedef struct {
|
||||
int8_t g;
|
||||
} pakketje;
|
||||
|
||||
void * GSensorThread(void *args) {
|
||||
void * GSensorTask(void *args) {
|
||||
|
||||
I2C_Handle speedyBoy;
|
||||
|
||||
@ -32,7 +32,7 @@ void * GSensorThread(void *args) {
|
||||
uint8_t buffer_send = ACCD_X_MSB;
|
||||
|
||||
double timer = 0;
|
||||
int sleeper;
|
||||
uint32_t sleeper;
|
||||
|
||||
I2C_Transaction RW_Trans;
|
||||
RW_Trans.slaveAddress = SPEEDYBOI_ADDR;
|
||||
@ -48,18 +48,18 @@ void * GSensorThread(void *args) {
|
||||
}
|
||||
// publish read into mailbox (defined in mqtt.c)
|
||||
timer += 0.1;
|
||||
|
||||
pakketje pakket;
|
||||
pakket.richting = (buffer_rcv < 0) ? Achteruit : Vooruit;
|
||||
pakket.timestamp = timer;
|
||||
pakket.g = abs(buffer_rcv);
|
||||
|
||||
// MQTTPublish(pakket);
|
||||
|
||||
sleeper = 6000000;
|
||||
|
||||
pakketje pakket;
|
||||
pakket.richting = (buffer_rcv < 0) ? Achteruit : Vooruit;
|
||||
pakket.timestamp = timer;
|
||||
pakket.g = abs(buffer_rcv);
|
||||
|
||||
// MQTTPublish(pakket);
|
||||
|
||||
while(sleeper) {
|
||||
sleeper--;
|
||||
}
|
||||
while(sleeper) {
|
||||
sleeper--;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
|
||||
void * GSensorThread(void *args);
|
||||
void * GSensorTask(void *args);
|
||||
void * MQTTTask(void *args);
|
||||
void * SocketTask(void *args);
|
||||
|
||||
32
src/main.c
32
src/main.c
@ -6,19 +6,27 @@
|
||||
#include <ti/drivers/I2C.h>
|
||||
#include <ti/drivers/i2c/I2CCC32XX.h>
|
||||
|
||||
#include "./header.h"
|
||||
#include "header.h"
|
||||
//#include "debug/debug.h"
|
||||
//#include "network/network.h"
|
||||
|
||||
#define BIGOLTHREADSTACK 4096
|
||||
|
||||
void Hardware_init(){
|
||||
// int32_t ret;
|
||||
|
||||
Board_init();
|
||||
GPIO_init();
|
||||
I2C_init();
|
||||
|
||||
// ret = WifiInit();
|
||||
// if(ret < 0){
|
||||
// while(1);
|
||||
// }
|
||||
}
|
||||
|
||||
int main(void){
|
||||
|
||||
pthread_t thread;
|
||||
pthread_attr_t attrs;
|
||||
struct sched_param priParam;
|
||||
int retc;
|
||||
@ -34,19 +42,33 @@ int main(void){
|
||||
retc |= pthread_attr_setdetachstate(&attrs, PTHREAD_CREATE_DETACHED);
|
||||
retc |= pthread_attr_setstacksize(&attrs, BIGOLTHREADSTACK);
|
||||
if (retc != 0) {
|
||||
/* failed to set attributes */
|
||||
// LOG_CRITICAL("main(): failed to set tread attributes");
|
||||
while(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ==============================================
|
||||
=== tread for G sensor =======================
|
||||
==============================================
|
||||
*/
|
||||
retc = pthread_create(&thread, &attrs, GSensorThread, NULL);
|
||||
pthread_t GSensorThread;
|
||||
retc = pthread_create(&GSensorThread, &attrs, GSensorTask, NULL);
|
||||
if (retc != 0) {
|
||||
/* pthread_create() failed */
|
||||
// LOG_CRITICAL("main(): failed to create tread for G-sensor");
|
||||
while(1);
|
||||
}
|
||||
|
||||
|
||||
/* ==============================================
|
||||
=== tread for MQTT ===========================
|
||||
==============================================
|
||||
*/
|
||||
pthread_t MQTTThread;
|
||||
retc = pthread_create(&MQTTThread, &attrs, MQTTTask, NULL);
|
||||
if (retc != 0) {
|
||||
/* pthread_create() failed */
|
||||
// LOG_CRITICAL("main(): failed to create tread for MQTT");
|
||||
while(1);
|
||||
}
|
||||
|
||||
|
||||
40
src/mqtt.c
40
src/mqtt.c
@ -1,6 +1,7 @@
|
||||
#include "mqtt/mqtt.h"
|
||||
|
||||
void MQTTTask(void* args){
|
||||
LOG_TRACE("MQTT task started.");
|
||||
mq_attr attr;
|
||||
MQTTClient_Handle mqttClientHandle;
|
||||
|
||||
@ -19,10 +20,10 @@ void MQTTTask(void* args){
|
||||
while(1);
|
||||
}
|
||||
|
||||
ret = WifiInit();
|
||||
if(ret < 0){
|
||||
while(1);
|
||||
}
|
||||
// ret = WifiInit();
|
||||
// if(ret < 0){
|
||||
// while(1);
|
||||
// }
|
||||
|
||||
ret = MQTT_IF_Init(mqttInitParams);
|
||||
if(ret < 0){
|
||||
@ -41,8 +42,7 @@ void MQTTTask(void* args){
|
||||
// ret |= MQTT_IF_Subscribe(mqttClientHandle, "cc32xx/ToggleLED3", MQTT_QOS_2, ToggleLED3CB);
|
||||
if(ret < 0){
|
||||
while(1);
|
||||
}
|
||||
else{
|
||||
}else{
|
||||
LOG_INFO("Subscribed to all topics successfully\r\n");
|
||||
}
|
||||
|
||||
@ -57,6 +57,7 @@ void MQTTTask(void* args){
|
||||
|
||||
struct msgQueue queueElement;
|
||||
while(1){
|
||||
LOG_TRACE("Running MQTT loop.");
|
||||
mq_receive(appQueue, (char*)&queueElement, sizeof(struct msgQueue), NULL);
|
||||
|
||||
if(queueElement.event == APP_MQTT_PUBLISH){
|
||||
@ -67,9 +68,6 @@ void MQTTTask(void* args){
|
||||
"LED 1 toggle\r\n",
|
||||
strlen("LED 1 toggle\r\n"),
|
||||
MQTT_QOS_2);
|
||||
|
||||
// GPIO_clearInt(CONFIG_GPIO_BUTTON_0);
|
||||
// GPIO_enableInt(CONFIG_GPIO_BUTTON_0);
|
||||
}
|
||||
else if(queueElement.event == APP_MQTT_CON_TOGGLE){
|
||||
|
||||
@ -94,17 +92,17 @@ void MQTTTask(void* args){
|
||||
|
||||
struct msgQueue queueElement;
|
||||
|
||||
ret = detectLongPress();
|
||||
if(ret == 0){
|
||||
|
||||
LOG_TRACE("APP_BTN_HANDLER SHORT PRESS\r\n");
|
||||
queueElement.event = APP_MQTT_CON_TOGGLE;
|
||||
}
|
||||
else{
|
||||
|
||||
LOG_TRACE("APP_BTN_HANDLER LONG PRESS\r\n");
|
||||
queueElement.event = APP_MQTT_DEINIT;
|
||||
}
|
||||
// ret = detectLongPress();
|
||||
// if(ret == 0){
|
||||
//
|
||||
//// LOG_TRACE("APP_BTN_HANDLER SHORT PRESS\r\n");
|
||||
// queueElement.event = APP_MQTT_CON_TOGGLE;
|
||||
// }
|
||||
// else{
|
||||
//
|
||||
//// LOG_TRACE("APP_BTN_HANDLER LONG PRESS\r\n");
|
||||
// queueElement.event = APP_MQTT_DEINIT;
|
||||
// }
|
||||
|
||||
ret = mq_send(appQueue, (const char*)&queueElement, sizeof(struct msgQueue), 0);
|
||||
if(ret < 0){
|
||||
@ -119,7 +117,7 @@ void MQTTTask(void* args){
|
||||
}
|
||||
MQTT_IF_Deinit();
|
||||
|
||||
// LOG_INFO("looping the MQTT functionality of the example for demonstration purposes only\r\n");
|
||||
LOG_INFO("looping the MQTT functionality of the example for demonstration purposes only\r\n");
|
||||
// sleep(2);
|
||||
// goto MQTT_DEMO;
|
||||
}
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
#include "mqtt_if.h"
|
||||
#include "../debug/debug.h"
|
||||
#include "../network/network.h"
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
@ -33,13 +35,6 @@
|
||||
mqd_t appQueue;
|
||||
int connected;
|
||||
int deinit;
|
||||
//Timer_Handle timer0;
|
||||
int longPress = 0;
|
||||
|
||||
/* Client ID */
|
||||
/* If ClientId isn't set, the MAC address of the device will be copied into */
|
||||
/* the ClientID parameter. */
|
||||
char ClientId[13] = {'\0'};
|
||||
|
||||
enum{
|
||||
APP_MQTT_PUBLISH,
|
||||
|
||||
126
src/network/network.h
Normal file
126
src/network/network.h
Normal file
@ -0,0 +1,126 @@
|
||||
|
||||
|
||||
#ifndef __NETWORK__H__
|
||||
#define __NETWORK__H__
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
#include "network_if.h"
|
||||
|
||||
extern char ClientId[13] = {'\0'};
|
||||
|
||||
int32_t SetClientIdNamefromMacAddress()
|
||||
{
|
||||
int32_t ret = 0;
|
||||
uint8_t Client_Mac_Name[2];
|
||||
uint8_t Index;
|
||||
uint16_t macAddressLen = SL_MAC_ADDR_LEN;
|
||||
uint8_t macAddress[SL_MAC_ADDR_LEN];
|
||||
|
||||
/*Get the device Mac address */
|
||||
ret = sl_NetCfgGet(SL_NETCFG_MAC_ADDRESS_GET, 0, &macAddressLen,
|
||||
&macAddress[0]);
|
||||
|
||||
/*When ClientID isn't set, use the mac address as ClientID */
|
||||
if(ClientId[0] == '\0')
|
||||
{
|
||||
/*6 bytes is the length of the mac address */
|
||||
for(Index = 0; Index < SL_MAC_ADDR_LEN; Index++)
|
||||
{
|
||||
/*Each mac address byte contains two hexadecimal characters */
|
||||
/*Copy the 4 MSB - the most significant character */
|
||||
Client_Mac_Name[0] = (macAddress[Index] >> 4) & 0xf;
|
||||
/*Copy the 4 LSB - the least significant character */
|
||||
Client_Mac_Name[1] = macAddress[Index] & 0xf;
|
||||
|
||||
if(Client_Mac_Name[0] > 9)
|
||||
{
|
||||
/*Converts and copies from number that is greater than 9 in */
|
||||
/*hexadecimal representation (a to f) into ascii character */
|
||||
ClientId[2 * Index] = Client_Mac_Name[0] + 'a' - 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*Converts and copies from number 0 - 9 in hexadecimal */
|
||||
/*representation into ascii character */
|
||||
ClientId[2 * Index] = Client_Mac_Name[0] + '0';
|
||||
}
|
||||
if(Client_Mac_Name[1] > 9)
|
||||
{
|
||||
/*Converts and copies from number that is greater than 9 in */
|
||||
/*hexadecimal representation (a to f) into ascii character */
|
||||
ClientId[2 * Index + 1] = Client_Mac_Name[1] + 'a' - 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*Converts and copies from number 0 - 9 in hexadecimal */
|
||||
/*representation into ascii character */
|
||||
ClientId[2 * Index + 1] = Client_Mac_Name[1] + '0';
|
||||
}
|
||||
}
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
int WifiInit(){
|
||||
|
||||
int32_t ret;
|
||||
SlWlanSecParams_t security_params;
|
||||
pthread_t spawn_thread = (pthread_t) NULL;
|
||||
pthread_attr_t pattrs_spawn;
|
||||
struct sched_param pri_param;
|
||||
|
||||
pthread_attr_init(&pattrs_spawn);
|
||||
pri_param.sched_priority = 9;
|
||||
ret = pthread_attr_setschedparam(&pattrs_spawn, &pri_param);
|
||||
ret |= pthread_attr_setstacksize(&pattrs_spawn, 2048);
|
||||
ret |= pthread_attr_setdetachstate(&pattrs_spawn, PTHREAD_CREATE_DETACHED);
|
||||
ret = pthread_create(&spawn_thread, &pattrs_spawn, sl_Task, NULL);
|
||||
if(ret != 0){
|
||||
// LOG_ERROR("could not create simplelink task\n\r");
|
||||
while(1);
|
||||
}
|
||||
|
||||
Network_IF_ResetMCUStateMachine();
|
||||
|
||||
Network_IF_DeInitDriver();
|
||||
|
||||
ret = Network_IF_InitDriver(ROLE_STA);
|
||||
if(ret < 0){
|
||||
// LOG_ERROR("Failed to start SimpleLink Device\n\r");
|
||||
while(1);
|
||||
}
|
||||
|
||||
// DisplayAppBanner(APPLICATION_NAME, APPLICATION_VERSION);
|
||||
|
||||
SetClientIdNamefromMacAddress();
|
||||
|
||||
security_params.Key = (signed char*)SECURITY_KEY;
|
||||
security_params.KeyLen = strlen(SECURITY_KEY);
|
||||
security_params.Type = SECURITY_TYPE;
|
||||
|
||||
ret = Network_IF_ConnectAP(SSID_NAME, security_params);
|
||||
if(ret < 0){
|
||||
// LOG_ERROR("Connection to an AP failed\n\r");
|
||||
}
|
||||
else{
|
||||
|
||||
SlWlanSecParams_t securityParams;
|
||||
|
||||
securityParams.Type = SECURITY_TYPE;
|
||||
securityParams.Key = (signed char*)SECURITY_KEY;
|
||||
securityParams.KeyLen = strlen((const char *)securityParams.Key);
|
||||
|
||||
ret = sl_WlanProfileAdd((signed char*)SSID_NAME, strlen(SSID_NAME), 0, &securityParams, NULL, 7, 0);
|
||||
if(ret < 0){
|
||||
// LOG_ERROR("failed to add profile %s\r\n", SSID_NAME);
|
||||
}
|
||||
else{
|
||||
// LOG_INFO("profile added %s\r\n", SSID_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
@ -535,7 +535,7 @@ long Network_IF_DeInitDriver(void)
|
||||
{
|
||||
long lRetVal = -1;
|
||||
|
||||
UART_PRINT("SL Disconnect...\n\r");
|
||||
// UART_PRINT("SL Disconnect...\n\r");
|
||||
|
||||
/* Disconnect from the AP */
|
||||
lRetVal = Network_IF_DisconnectFromAP();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user