Commit d2b4ee17 authored by aohui.li's avatar aohui.li

增加状态机、开启4G和以太网、开启以太网静态IP可配(v1.01)

parent 28d624b9
This diff is collapsed.
#ifndef WIT_H #ifndef WIT_H
#define WIT_H #define WIT_H
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "freertos/queue.h"
#include "freertos/timers.h"
#include "wit_config.h" #include "wit_config.h"
#include "stdbool.h" #include "stdbool.h"
#if CONFIG_W5100S_SPI_ETHERNET > 0 #include "../Telecom/eth/W5100S/wizchip_conf.h"
#include "../Telecom/eth/W5100S/wizchip_conf.h"
#endif
#include "mb.h" #include "mb.h"
#include "ts_iot01b.h" #include "ts_iot01b.h"
...@@ -120,25 +123,73 @@ typedef struct { ...@@ -120,25 +123,73 @@ typedef struct {
#endif #endif
typedef enum {
IDEL = 0, // 空闲,必须第一位,防止清空flash之后,初始化错误
POWER_ON = 1, // 上电应答
CONFIG_THR = 2, // 配置阈值状态
DETECTING = 3 , // 检测获取数据工作
PUSH = 4, // 正常上报MQTT
MISSING = 5, // 失联
STOP =6
}IOT_STATUS;
typedef enum{
LEVEL_UNKNOWN = 0, // 未知状态
LEVEL_0, // 轻度损耗
LEVEL_1, // 中度损伤
LEVEL_2, // 重度损伤
LEVEL_3, // 停止使用
}LEVEL;
typedef enum{
NO_WORKING = 0,
WORKING,
SENSOR_FINE,
SENSOR_ERROR
}IOT_WORK_STATUS_RESP;
#define ALIAS_MAX_NAME_LENGTH 8
//配置数据 (配置存储到内部FLASH --- 阈值与存储数据存储到外部FLASH) //配置数据 (配置存储到内部FLASH --- 阈值与存储数据存储到外部FLASH)
typedef struct typedef struct
{ {
unsigned short addr; unsigned short addr;
unsigned short id; unsigned short id;
unsigned short sn; unsigned short sn;
bool bIsTimeout; char alias[ALIAS_MAX_NAME_LENGTH];
bool bIsUsed; bool bIsUsed;
bool bIsPlugIn; bool bIsPlugIn;
unsigned int rope_value; bool beingDataWaiting;
bool beingWaiting; bool beingStopWaiting;
unsigned char status; bool beingConfigWaiting;
}IOTDev; unsigned long g_ts;
unsigned short rope_value;
LEVEL level;
bool emergency;
IOT_STATUS status_machine;
unsigned short fifo_tail;
unsigned short fifo_data[FIFO_SIZE];
bool bIsFull;
unsigned long alarmRecord;
}wireRopeDev;
typedef struct
{
wireRopeDev wireRopeDevs[EACH_GROUP_MAX_NUM];
TimerHandle_t pxDataSendTimer;
bool DataSendFlag;
}wireRopeGroup;
typedef struct typedef struct
{ {
char cModuleName[WIT_MODULE_NAME_MAX_SIZE]; //模块名称 char cModuleName[WIT_MODULE_NAME_MAX_SIZE]; //模块名称
unsigned long ulModuleNameValue; //检查模块名是否配置过 unsigned long ulModuleNameValue; //检查模块名是否配置过
unsigned long ulPeriod; //发送周期 unsigned long ulDataPeriod; //发送周期
unsigned long ulFeaturePeriod; //发送周期
unsigned long ulConfigureValue; //检查以上内容是否配置过 unsigned long ulConfigureValue; //检查以上内容是否配置过
unsigned long ulSerialNumber; //序列号 unsigned long ulSerialNumber; //序列号
unsigned long ulPackageID; //包ID unsigned long ulPackageID; //包ID
...@@ -181,12 +232,9 @@ typedef struct ...@@ -181,12 +232,9 @@ typedef struct
sSenTable xSenTable[WIT_SENSOR_MAX_CONNECT_NUM * WIT_SENSOR_GROUP_MAX_NUM]; sSenTable xSenTable[WIT_SENSOR_MAX_CONNECT_NUM * WIT_SENSOR_GROUP_MAX_NUM];
unsigned long ulBleBinSize; unsigned long ulBleBinSize;
unsigned long ulSenParmInfoValue; unsigned long ulSenParmInfoValue;
#if CONFIG_W5100S_SPI_ETHERNET > 0
wiz_NetInfo g_xConfigIp; wiz_NetInfo g_xConfigIp;
unsigned long ulEthNetInfoValue; //检查以上信息是否配置过 unsigned long ulEthNetInfoValue; //检查以上信息是否配置过
#endif wireRopeGroup g_wireRopeGroup[WIREROPE_GROUP_MAX_NUM];
IOTDev my_IOTDev[IOTDEV_MAX_NUM];
unsigned long my_IOTThreshold;
#endif #endif
} WIT_Configure; } WIT_Configure;
...@@ -254,11 +302,12 @@ bool WIT_GetMotorWork(unsigned char ucIndex); ...@@ -254,11 +302,12 @@ bool WIT_GetMotorWork(unsigned char ucIndex);
unsigned long *get_ulPort(void); unsigned long *get_ulPort(void);
char *sent_mqtt_ip(void); char *sent_mqtt_ip(void);
#endif #endif
#if CONFIG_W5100S_SPI_ETHERNET > 0 // #if CONFIG_W5100S_SPI_ETHERNET > 0
unsigned long get_status_dhcp(void); unsigned long get_status_dhcp(void);
wiz_NetInfo *get_gw_eth_info(void); wiz_NetInfo *get_gw_eth_info(void);
#endif // #endif
void Message_Deal_Function(void); void Message_Deal_Function(void);
unsigned long getIotConnectNum(void); unsigned long getIotConnectNum(void);
void Sensor_Status_Machine(void);
#endif #endif
...@@ -11,8 +11,8 @@ extern "C" ...@@ -11,8 +11,8 @@ extern "C"
#define TAG "Witium" #define TAG "Witium"
//软件版本号 //软件版本号
#define WIT_VERSION "1.00" #define WIT_VERSION "1.01"
#define WIT_VERSION_HEX 0x0100 #define WIT_VERSION_HEX 0x0101
//此宏直接在下载正式程序用 //此宏直接在下载正式程序用
#define WIT_FIXED_MODULE_NAME 1 #define WIT_FIXED_MODULE_NAME 1
...@@ -84,6 +84,9 @@ extern "C" ...@@ -84,6 +84,9 @@ extern "C"
#define WIT_MAX_TIME (0xFFFFFED8) // MOTT上发最大时长 #define WIT_MAX_TIME (0xFFFFFED8) // MOTT上发最大时长
#define WIT_ALARM_COUNT_THRESHOLD 5 // 预警N次才上报预警 #define WIT_ALARM_COUNT_THRESHOLD 5 // 预警N次才上报预警
#define WIT_FEATURE_PERIOD (15 * 60 * 1000)
#define WIT_DATA_PERIOD (15 * 60 * 1000)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
......
...@@ -100,7 +100,15 @@ bool ACK_0AH(unsigned short id, unsigned short sn) ...@@ -100,7 +100,15 @@ bool ACK_0AH(unsigned short id, unsigned short sn)
unsigned char cmd = 0x0A; unsigned char cmd = 0x0A;
unsigned char data_size = 0x01; unsigned char data_size = 0x01;
unsigned char data[1] = {0x01}; unsigned char data[1] = {0x01};
printf("Send 0x0A\n"); return Response_Package(id, sn, cmd, data_size, data);
}
//68 00 3F 00 01 68 0C 01 02 1F 16
bool InquireStatus(unsigned short id, unsigned short sn)
{
unsigned char cmd = 0x0C;
unsigned char data_size = 0x01;
unsigned char data[1] = {0x02};
return Response_Package(id, sn, cmd, data_size, data); return Response_Package(id, sn, cmd, data_size, data);
} }
...@@ -109,7 +117,7 @@ bool Start_Detect(unsigned short id, unsigned short sn) ...@@ -109,7 +117,7 @@ bool Start_Detect(unsigned short id, unsigned short sn)
unsigned char cmd = 0x04; unsigned char cmd = 0x04;
unsigned char data_size = 0x01; unsigned char data_size = 0x01;
unsigned char data[1] = {0x00}; unsigned char data[1] = {0x00};
printf("Send Start_Detect\n"); // printf("Send Start_Detect\n");
return Response_Package(id, sn, cmd, data_size, data); return Response_Package(id, sn, cmd, data_size, data);
} }
...@@ -123,7 +131,7 @@ bool Stop_Detect(unsigned short id, unsigned short sn) ...@@ -123,7 +131,7 @@ bool Stop_Detect(unsigned short id, unsigned short sn)
unsigned char cmd = 0x06; unsigned char cmd = 0x06;
unsigned char data_size = 0x01; unsigned char data_size = 0x01;
unsigned char data[1] = {0x00}; unsigned char data[1] = {0x00};
printf("Send Stop_Detect\n"); // printf("Send Stop_Detect\n");
return Response_Package(id, sn, cmd, data_size, data); return Response_Package(id, sn, cmd, data_size, data);
} }
...@@ -194,7 +202,7 @@ bool data_frame_parsing(unsigned char *buf, int len, sIOT01B_Format* data) ...@@ -194,7 +202,7 @@ bool data_frame_parsing(unsigned char *buf, int len, sIOT01B_Format* data)
// basic check // basic check
if(data->ucHeader != 0x68 || data->ucTail != 0x16) if(data->ucHeader != 0x68 || data->ucTail != 0x16)
{ {
printf("Header or Tail Error.\n"); // printf("Header[%2x] & Tail[%2x] Error.\n", data->ucHeader, data->ucTail);
return false; return false;
} }
...@@ -231,3 +239,84 @@ eIOT01B_Info IOT01B_Get_Collect_Data(sIOT01B_Format *df, unsigned short *value) ...@@ -231,3 +239,84 @@ eIOT01B_Info IOT01B_Get_Collect_Data(sIOT01B_Format *df, unsigned short *value)
return EIOT01B_OK; return EIOT01B_OK;
} }
void queueInitFifo(unsigned short *fifo_tail, unsigned short fifo_data[], bool *isFull)
{
(*fifo_tail) = 0;
for(unsigned short i = 0; i < FIFO_SIZE; i++)
{
fifo_data[i] = 0;
}
(*isFull) = false;
}
unsigned short calculateAverage(unsigned short fifo_data[], bool isFull)
{
if(isFull != true) return 0;
unsigned short sum = 0;
for (int i = 0; i < FIFO_SIZE; i++)
{
sum += fifo_data[i];
}
printf("sum: %d\n", sum);
return sum / FIFO_SIZE;
}
void enqueueDataFifo(unsigned short *fifo_tail, unsigned short *fifo_data, int data, bool *isFull)
{
fifo_data[(*fifo_tail)] = data;
(*fifo_tail) = (*fifo_tail) + 1;
if ((*fifo_tail) >= FIFO_SIZE)
{
(*fifo_tail) = 0;
*isFull = true;
// printf("\n");
// for(int i = 0; i< FIFO_SIZE; i++)
// {
// printf("%d ", fifo_data[i]);
// }
// printf("\n");
}
}
unsigned short maxDataWireRope(unsigned short fifo_data[], bool isFull)
{
if(isFull != true) return 0;
int max = 0;
for (int i = 0; i < FIFO_SIZE; i++)
{
if (fifo_data[i] > max)
{
max = fifo_data[i];
}
}
return max;
}
int getAlarm( int alarmRecord, bool isFull)
{
if(isFull != true) return 0;
return (alarmRecord);
}
void setAlarm( unsigned long *alarmRecord)
{
if((*alarmRecord) >= 999999)
{
(*alarmRecord) = 999999;
}
else
{
(*alarmRecord)++;
}
}
...@@ -3,12 +3,15 @@ ...@@ -3,12 +3,15 @@
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
// Slave Command // Slave Command
#define SLAVE_POWER_ON_CONTACK 0x01 #define WIREROPE_CMD_WAIT_AWAKE 0x01
#define SLAVE_ACK 0x03 #define WIREROPE_CMD_ACK_OR_NACK 0x03
#define SLAVE_HEARTBEAT 0x05 #define WIREROPE_CMD_HEARTBEAT 0x05
#define SLAVE_LINE_DETECT_DATA 0x07 #define WIREROPE_CMD_DATA_PERCENT 0x07
#define SLAVE_RES_SYS_PARAMETER 0x09 #define WIREROPE_CMD_SYSTEM_PARAM 0x09
#define WIREROPE_CMD_WORK_STATUS_MESSAGE 0x0B
#define WIREROPE_CMD_WORK_PARAM 0x0D
// Master Command // Master Command
#define MASTER_ACK 0x0A #define MASTER_ACK 0x0A
...@@ -21,10 +24,14 @@ ...@@ -21,10 +24,14 @@
#define FRAME_TAIL 0x16 #define FRAME_TAIL 0x16
#define TCP_MESSAGE_MAX_LEN 256 #define TCP_MESSAGE_MAX_LEN 280
#define EACH_GROUP_MAX_NUM 4
#define WIREROPE_GROUP_MAX_NUM 2
#define IOTDEV_MAX_NUM 10
#define FIFO_SIZE 100
typedef enum { typedef enum {
EIOT01B_OK = 0, EIOT01B_OK = 0,
...@@ -65,12 +72,13 @@ eIOT01B_Info IOT01B_Set_Stop_Collect(unsigned long ulDevId); ...@@ -65,12 +72,13 @@ eIOT01B_Info IOT01B_Set_Stop_Collect(unsigned long ulDevId);
eIOT01B_Info IOT01B_Get_Collect_Data(sIOT01B_Format *df, unsigned short *value); eIOT01B_Info IOT01B_Get_Collect_Data(sIOT01B_Format *df, unsigned short *value);
eIOT01B_Info IOT01B_Data_Parsing(void *ulData, unsigned short usSize); eIOT01B_Info IOT01B_Data_Parsing(void *ulData, unsigned short usSize);
void Message_Deal_Start_Task(void); void message_deal_start_task(void);
void message_hex(unsigned char *buf, unsigned short len); void message_hex(unsigned char *buf, unsigned short len);
bool Message_Send(uint8_t *smessage, int len); bool Message_Send(uint8_t *smessage, int len);
bool data_frame_parsing(unsigned char *buf, int len, sIOT01B_Format* data); bool data_frame_parsing(unsigned char *buf, int len, sIOT01B_Format* data);
eIOT01B_Info IOT01B_Data_Parsing(void *ulData, unsigned short usSize); eIOT01B_Info IOT01B_Data_Parsing(void *ulData, unsigned short usSize);
bool ACK_0AH(unsigned short id, unsigned short sn); bool ACK_0AH(unsigned short id, unsigned short sn);
bool InquireStatus(unsigned short id, unsigned short sn);
bool Set_Threshold(unsigned short id, unsigned short sn, unsigned short threshold); bool Set_Threshold(unsigned short id, unsigned short sn, unsigned short threshold);
bool Start_Detect(unsigned short id, unsigned short sn); bool Start_Detect(unsigned short id, unsigned short sn);
bool Stop_Detect(unsigned short id, unsigned short sn); bool Stop_Detect(unsigned short id, unsigned short sn);
...@@ -78,6 +86,12 @@ void Get_SensorIOT_Data(unsigned short id, unsigned short sn); ...@@ -78,6 +86,12 @@ void Get_SensorIOT_Data(unsigned short id, unsigned short sn);
void IOT_SetConfig(); void IOT_SetConfig();
// unsigned long getIotConnectNum(void); // unsigned long getIotConnectNum(void);
void queueInitFifo(unsigned short *fifo_tail, unsigned short fifo_data[], bool *isFull);
unsigned short calculateAverage(unsigned short fifo_data[], bool isFull) ;
unsigned short maxDataWireRope(unsigned short fifo_data[], bool isFull) ;
int getAlarm( int alarmRecord, bool isFull);
void setAlarm( unsigned long *alarmRecord);
void enqueueDataFifo(unsigned short *fifo_tail, unsigned short *fifo_data, int data, bool *isFull) ;
......
...@@ -36,6 +36,8 @@ extern uint8 pub_buf[1024]; ...@@ -36,6 +36,8 @@ extern uint8 pub_buf[1024];
void ReadData(void); void ReadData(void);
static void make_basic_config_setting_json_callback(int8 *buf, CONFIG_MSG config_msg) static void make_basic_config_setting_json_callback(int8 *buf, CONFIG_MSG config_msg)
{ {
sprintf(buf, "settingsCallback({\"ver\":\"%X.%02X\",\ sprintf(buf, "settingsCallback({\"ver\":\"%X.%02X\",\
...@@ -224,9 +226,9 @@ void WriteData(CONFIG_MSG *config, uint16_t length) ...@@ -224,9 +226,9 @@ void WriteData(CONFIG_MSG *config, uint16_t length)
wiz_NetInfo *eth_info = NULL; wiz_NetInfo *eth_info = NULL;
unsigned long *value = NULL; unsigned long *value = NULL;
char *mqtt_ip = NULL; char *mqtt_ip = NULL;
#if CONFIG_W5100S_SPI_ETHERNET > 0 // #if CONFIG_W5100S_SPI_ETHERNET > 0
eth_info = get_gw_eth_info(); eth_info = get_gw_eth_info();
#endif // #endif
value = get_ulPort(); value = get_ulPort();
mqtt_ip = sent_mqtt_ip(); mqtt_ip = sent_mqtt_ip();
if(eth_info == NULL || value == NULL || mqtt_ip == NULL) if(eth_info == NULL || value == NULL || mqtt_ip == NULL)
...@@ -268,9 +270,9 @@ void ReadData(void) ...@@ -268,9 +270,9 @@ void ReadData(void)
ConfigMsg.mqttport[0] = *value % 256; ConfigMsg.mqttport[0] = *value % 256;
ConfigMsg.mqttport[1] = *value / 256; ConfigMsg.mqttport[1] = *value / 256;
#if CONFIG_W5100S_SPI_ETHERNET > 0 // #if CONFIG_W5100S_SPI_ETHERNET > 0
ConfigMsg.dhcpconfig = get_status_dhcp(); ConfigMsg.dhcpconfig = get_status_dhcp();
#endif // #endif
ConfigMsg.dhcpconfig -= 1; ConfigMsg.dhcpconfig -= 1;
printf("IP, GW and Subnet updated successfully in gWIZNETINFO.\r\n"); printf("IP, GW and Subnet updated successfully in gWIZNETINFO.\r\n");
......
...@@ -18,7 +18,9 @@ ...@@ -18,7 +18,9 @@
#include "socket.h" #include "socket.h"
#include "wizchip_conf.h" #include "wizchip_conf.h"
#include "w5100s_conf.h" #include "w5100s_conf.h"
#include "eth.h" #if CONFIG_W5100S_SPI_ETHERNET > 0
#include "eth.h"
#endif
#include "ts_iot01b.h" #include "ts_iot01b.h"
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
...@@ -34,28 +36,24 @@ uint16 local_port = 11111; // 定义本地端口11111 ...@@ -34,28 +36,24 @@ uint16 local_port = 11111; // 定义本地端口11111
uint8_t g_IOTBuffer[200]; uint8_t g_IOTBuffer[200];
Tcp_Message g_Tcp_Message; Tcp_Message g_Tcp_Message;
extern QueueHandle_t xMessageQueueHandle; extern QueueHandle_t xMessageQueueHandle;
TimerHandle_t xSensorTimer = NULL; TimerHandle_t xSensorTimeoutTimer = NULL;
TimerHandle_t xSensorDataFreshTimer = NULL; TimerHandle_t xSensorDataUpdateTimer = NULL;
TCP_STATUS g_TcpServerStatus = TCP_SERVER_SOCKET_CLOSE; TCP_STATUS g_TcpServerStatus = TCP_SERVER_SOCKET_CLOSE;
extern TimerHandle_t g_xDataSendTimer[];
void do_tcp_server(void) void do_tcp_server(void)
{ {
uint8_t count =0; uint8_t ret;
my_socket(2, Sn_MR_TCP, 11111, 0); uint16 len;
portBASE_TYPE ret_pB;
// my_socket(2, Sn_MR_TCP, 11111, 0);
while(1) while(1)
{ {
uint16 len = 0; len = 0;
uint8_t ret = getSn_SR(SOCK_TCPS); ret = getSn_SR(SOCK_TCPS);
count++;
if(count == 500)
{
count = 0;
printf(">>>>>getSn_SR %d\n",ret);
}
// printf(" getSn_SR %d\n",ret);
switch(ret) // 获取socket的状态 switch(ret) // 获取socket的状态
{ {
case SOCK_CLOSED: // socket处于关闭状态 case SOCK_CLOSED: // socket处于关闭状态
...@@ -82,18 +80,24 @@ void do_tcp_server(void) ...@@ -82,18 +80,24 @@ void do_tcp_server(void)
len = getSn_RX_RSR(SOCK_TCPS); // 定义len为已接收数据的长度 len = getSn_RX_RSR(SOCK_TCPS); // 定义len为已接收数据的长度
if(len > 0) if(len > 0)
{ {
if(len > 256) if(len > 280)
{ {
len =256; len = 265;
} }
recv(SOCK_TCPS, g_Tcp_Message.message, len); // 接收来自Client的数据 recv(SOCK_TCPS, g_Tcp_Message.message, len); // 接收来自Client的数据
g_Tcp_Message.rec_len = len; // 添加字符串结束符 g_Tcp_Message.rec_len = len; // 添加字符串结束符
// printf("sock receive len[%d]: %s\n", g_Tcp_Message.rec_len, g_Tcp_Message.message); // printf("sock receive len[%d]: %s\n", g_Tcp_Message.rec_len, g_Tcp_Message.message);
if (xMessageQueueHandle != NULL) if (xMessageQueueHandle != NULL)
{ {
xQueueSend( xMessageQueueHandle, &g_Tcp_Message, 0);
// disconnect(SOCK_TCPS); // 断开当前TCP连接 ret_pB = xQueueSend( xMessageQueueHandle, &g_Tcp_Message, 0); // 将数据发送到消息队列中
// close(SOCK_TCPS); // 关闭当前所使用socket if(ret_pB == pdTRUE)
{
// printf("xQSend OK\n");
}
else
printf("xQSend Exx\n");
} }
else else
{ {
...@@ -129,7 +133,7 @@ bool Message_Send(uint8_t *smessage, int len) ...@@ -129,7 +133,7 @@ bool Message_Send(uint8_t *smessage, int len)
} }
else else
{ {
printf("TCP SERVER DISCONNECT!!! \nTCP_SERVER_STATUS is [%d]\n", g_TcpServerStatus); // printf("No Client ESTABLISHED [%x]\n", g_TcpServerStatus);
return false; return false;
} }
} }
...@@ -137,14 +141,18 @@ bool Message_Send(uint8_t *smessage, int len) ...@@ -137,14 +141,18 @@ bool Message_Send(uint8_t *smessage, int len)
void tcp_server_task_start(void) void tcp_server_task_start(void)
{ {
printf("tcp_server_task START\n"); printf("1 start\n");
xTaskCreate(do_tcp_server, "tcp_server_task", 2048, NULL, 5, NULL); xTaskCreate(do_tcp_server, "tcp_server_task", 2048, NULL, 5, NULL);
} }
void Message_Deal_Start_Task(void) void message_deal_start_task(void)
{ {
printf("Message_Deal_Task START\n"); printf("2 start\n");
xMessageQueueHandle = xQueueCreate(40, sizeof(Tcp_Message));
xTaskCreate(Message_Deal_Function, "Message_Deal_Function", 8192, NULL, 5, NULL);
while(xMessageQueueHandle == NULL)
{
xMessageQueueHandle = xQueueCreate(100, sizeof(Tcp_Message));
}
xTaskCreate(Sensor_Status_Machine, "StatusMachine", 5120, NULL, 5, NULL);
xTaskCreate(Message_Deal_Function, "MessageDealFunction", 10240, NULL, 5, NULL);
} }
...@@ -22,7 +22,9 @@ ...@@ -22,7 +22,9 @@
#include "driver/gpio.h" #include "driver/gpio.h"
#include "spi.h" #include "spi.h"
#include "esp_rom_gpio.h" #include "esp_rom_gpio.h"
#include "eth.h" #if CONFIG_W5100S_SPI_ETHERNET > 0
#include "eth.h"
#endif
#include "wit.h" #include "wit.h"
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
...@@ -74,7 +76,9 @@ void ETHERNET_Init(bool *bModuleStatus, bool *bCableStatus) ...@@ -74,7 +76,9 @@ void ETHERNET_Init(bool *bModuleStatus, bool *bCableStatus)
vTaskDelay(2000 / portTICK_PERIOD_MS); vTaskDelay(2000 / portTICK_PERIOD_MS);
} }
// hw_ping_init(); // hw_ping_init();
#if CONFIG_W5100S_SPI_ETHERNET > 0
if_eth_task_init(); if_eth_task_init();
#endif
} }
/** /**
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
/* Private macros ------------------------------------------------------------*/ /* Private macros ------------------------------------------------------------*/
#define CELLUAR_POWER_KEY_PIN 1 #define CELLUAR_POWER_KEY_PIN 1
#define CELLUAR_STATUS_PIN 38 #define CELLUAR_STATUS_PIN 38
#define POWER_KEY_PIN 46 #define POWER_KEY_PIN 3
#define CELLUAR_POWER_BASE_TIME 500 //500ms #define CELLUAR_POWER_BASE_TIME 500 //500ms
...@@ -26,8 +26,8 @@ void Celluar_ConfigureGPIO(void) ...@@ -26,8 +26,8 @@ void Celluar_ConfigureGPIO(void)
esp_rom_gpio_pad_select_gpio(CELLUAR_STATUS_PIN); esp_rom_gpio_pad_select_gpio(CELLUAR_STATUS_PIN);
gpio_set_direction(CELLUAR_STATUS_PIN, GPIO_MODE_INPUT); // gpio_set_direction(CELLUAR_STATUS_PIN, GPIO_MODE_INPUT); //
// POWER_KEY_PIN // POWER_KEY_PIN
// esp_rom_gpio_pad_select_gpio(POWER_KEY_PIN); // 选择个GPIO esp_rom_gpio_pad_select_gpio(POWER_KEY_PIN); // 选择个GPIO
// gpio_set_direction(POWER_KEY_PIN, GPIO_MODE_OUTPUT); // 把这个GPIO作为输出 gpio_set_direction(POWER_KEY_PIN, GPIO_MODE_OUTPUT); // 把这个GPIO作为输出
gpio_set_level(POWER_KEY_PIN, 1); gpio_set_level(POWER_KEY_PIN, 1);
// // EC20 PWR设置 // // EC20 PWR设置
......
...@@ -98,7 +98,7 @@ void Celluar_ConfigureUSB(void (*pFuncIdleCallBack)(void), void (*pFuncRxneCallB ...@@ -98,7 +98,7 @@ void Celluar_ConfigureUSB(void (*pFuncIdleCallBack)(void), void (*pFuncRxneCallB
{ {
usbh_cdc_driver_install(&config); usbh_cdc_driver_install(&config);
/* Waiting for USB device connected */ /* Waiting for USB device connected */
usbh_cdc_wait_connect(portMAX_DELAY); usbh_cdc_wait_connect(5000);
g_xUSBHandler.pFuncRxneHandler = pFuncRxneCallBack; g_xUSBHandler.pFuncRxneHandler = pFuncRxneCallBack;
g_xUSBHandler.pFuncIdleHandler = pFuncIdleCallBack; g_xUSBHandler.pFuncIdleHandler = pFuncIdleCallBack;
gUSBSemaphore = xSemaphoreCreateBinary(); gUSBSemaphore = xSemaphoreCreateBinary();
......
...@@ -21,25 +21,22 @@ ...@@ -21,25 +21,22 @@
#include "freertos/queue.h" #include "freertos/queue.h"
#include "wit.h" #include "wit.h"
#if CONFIG_W5100S_SPI_ETHERNET > 0
#include "httputil.h" #include "httputil.h"
#endif
#define MAIN_TASK_STK (configMINIMAL_STACK_SIZE * 10) #define MAIN_TASK_STK (configMINIMAL_STACK_SIZE * 10)
#define MAIN_TASK_PRIORITY (tskIDLE_PRIORITY + 3) #define MAIN_TASK_PRIORITY (tskIDLE_PRIORITY + 3)
#if CONFIG_W5100S_SPI_ETHERNET > 0
#define HTTP_TASK_STK (configMINIMAL_STACK_SIZE * 20) #define HTTP_TASK_STK (configMINIMAL_STACK_SIZE * 20)
#define HTTP_TASK_PRIORITY (tskIDLE_PRIORITY + 2) #define HTTP_TASK_PRIORITY (tskIDLE_PRIORITY + 2)
#endif
#define TWDT_TIMEOUT_S 3 // TWDT超时时间 #define TWDT_TIMEOUT_S 3 // TWDT超时时间
#define TASK_RESET_PERIOD_S 2 // 任务重置周期时间 #define TASK_RESET_PERIOD_S 2 // 任务重置周期时间
static void Main_Task(void *pvParameter); static void Main_Task(void *pvParameter);
#if CONFIG_W5100S_SPI_ETHERNET > 0 static void Http_Task(void *pvParameter);
static void Http_Task(void *pvParameter);
#endif
static int bWITInitFin = 0; static int bWITInitFin = 0;
...@@ -48,9 +45,7 @@ void app_main(void) ...@@ -48,9 +45,7 @@ void app_main(void)
int rc = 0; int rc = 0;
ESP_ERROR_CHECK(nvs_flash_init()); ESP_ERROR_CHECK(nvs_flash_init());
xTaskCreate(Main_Task, "Main Task", MAIN_TASK_STK, NULL, MAIN_TASK_PRIORITY, NULL); xTaskCreate(Main_Task, "Main Task", MAIN_TASK_STK, NULL, MAIN_TASK_PRIORITY, NULL);
#if CONFIG_W5100S_SPI_ETHERNET > 0
rc = xTaskCreate(Http_Task, "Http Task", HTTP_TASK_STK, NULL, HTTP_TASK_PRIORITY, NULL); rc = xTaskCreate(Http_Task, "Http Task", HTTP_TASK_STK, NULL, HTTP_TASK_PRIORITY, NULL);
#endif
printf("rc is %d\r\n", rc); printf("rc is %d\r\n", rc);
} }
...@@ -68,11 +63,10 @@ static void Main_Task(void *pvParameter) ...@@ -68,11 +63,10 @@ static void Main_Task(void *pvParameter)
vTaskDelay(20 / portTICK_PERIOD_MS); vTaskDelay(20 / portTICK_PERIOD_MS);
} }
} }
#if CONFIG_W5100S_SPI_ETHERNET > 0
static void Http_Task(void *pvParameter) static void Http_Task(void *pvParameter)
{ {
//Init //Init
// printf("Enter Http Task\n");
while(1) while(1)
{ {
if(bWITInitFin == 1) if(bWITInitFin == 1)
...@@ -82,4 +76,4 @@ static void Http_Task(void *pvParameter) ...@@ -82,4 +76,4 @@ static void Http_Task(void *pvParameter)
vTaskDelay(1 / portTICK_PERIOD_MS); vTaskDelay(1 / portTICK_PERIOD_MS);
} }
} }
#endif
...@@ -471,8 +471,8 @@ CONFIG_PARTITION_TABLE_MD5=y ...@@ -471,8 +471,8 @@ CONFIG_PARTITION_TABLE_MD5=y
# Witium Gateway Configure # Witium Gateway Configure
# #
# CONFIG_ESP32_WIFI is not set # CONFIG_ESP32_WIFI is not set
# CONFIG_EC200S_USB_4G is not set CONFIG_EC200S_USB_4G=y
CONFIG_W5100S_SPI_ETHERNET=y # CONFIG_W5100S_SPI_ETHERNET is not set
# CONFIG_RS485_RTU is not set # CONFIG_RS485_RTU is not set
CONFIG_BLUETOOTH=y CONFIG_BLUETOOTH=y
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment