Browse Source

finish first job (add login function isbelong which page)

master
sunlight 11 months ago
parent
commit
4629409b61
  1. 3
      .vscode/settings.json
  2. 19
      Core/Src/stm32f4xx_hal_msp.c
  3. 3
      Core/Src/stm32f4xx_it.c
  4. 18
      Usr/service/app_core.c
  5. 36
      Usr/service/front_end_controler.c
  6. 15
      Usr/service/front_end_controler.h
  7. 8
      Usr/service/page/Page_SettingTime.c
  8. 4
      Usr/service/page/Page_SettingTime.h
  9. 8
      Usr/service/page/Page_main.c
  10. 6
      Usr/service/page/Page_main.h
  11. 32
      Usr/service/page/page_processer.c
  12. 14
      Usr/service/page/page_processer.h
  13. 5
      stm32basic/ztask.c
  14. 4
      stm32basic/ztask.h
  15. BIN
      ui/ui.HMI

3
.vscode/settings.json

@ -20,6 +20,7 @@
"standbymode.h": "c", "standbymode.h": "c",
"ztask.h": "c", "ztask.h": "c",
"stdbool.h": "c", "stdbool.h": "c",
"stdint.h": "c"
"stdint.h": "c",
"ui.h": "c"
} }
} }

19
Core/Src/stm32f4xx_hal_msp.c

@ -197,25 +197,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitStruct.Alternate = GPIO_AF7_USART1; GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN USART1_MspInit 1 */
/***********************************************************************************************************************
* DMAåˆå?åŒ *
***********************************************************************************************************************/
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
hdma2_stream2.Instance = DMA2_Stream2;
hdma2_stream2.Init.Channel = DMA_CHANNEL_4;
hdma2_stream2.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma2_stream2.Init.PeriphInc = DMA_PINC_DISABLE;
hdma2_stream2.Init.MemInc = DMA_MINC_ENABLE;
hdma2_stream2.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma2_stream2.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma2_stream2.Init.Mode = DMA_NORMAL;
hdma2_stream2.Init.Priority = DMA_PRIORITY_LOW;
hdma2_stream2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma2_stream2) != HAL_OK) {
Error_Handler();
}
__HAL_LINKDMA(&huart1, hdmarx, hdma2_stream2); __HAL_LINKDMA(&huart1, hdmarx, hdma2_stream2);
HAL_NVIC_SetPriority(USART1_IRQn, 5, 0); HAL_NVIC_SetPriority(USART1_IRQn, 5, 0);

3
Core/Src/stm32f4xx_it.c

@ -233,9 +233,6 @@ void RTC_Alarm_IRQHandler(void)
void UART4_IRQHandler(void){ HAL_UART_IRQHandler(&huart4); } void UART4_IRQHandler(void){ HAL_UART_IRQHandler(&huart4); }
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
huart->USR_DMARxSize = Size;
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
if (huart->USR_UartITRxing) { if (huart->USR_UartITRxing) {

18
Usr/service/app_core.c

@ -7,19 +7,18 @@
void App_initialize(void){ void App_initialize(void){
DBUG_USART1_UART_Init(460800); DBUG_USART1_UART_Init(460800);
ZLOGI(TAG,"======================= boardinfo ==================== "); ZLOGI(TAG,"======================= boardinfo ==================== ");
//zlog("DBUG_UART");
App_HardWare_initialize();// App_HardWare_initialize();//
task_init();
// Front_initialize();//
task_init();
Page_initialize(pg_main);
Page_initialize(pg_SettingTime);
} }
void umain(void){ void umain(void){
App_initialize(); App_initialize();
task_init();
while (1) while (1)
{ {
appsetup(); appsetup();
@ -29,11 +28,10 @@ void umain(void){
void appsetup(void) void appsetup(void)
{ {
Front_initialize(); Front_initialize();
// Page_initialize(Page_main);
// Page_initialize(Page_SetingTime);
Front_startSchedule(); Front_startSchedule();
} }
void debugLightLoop(void){
}

36
Usr/service/front_end_controler.c

@ -6,13 +6,12 @@
Task_t usartRxtask; Task_t usartRxtask;
Task_t eventProcesstask; Task_t eventProcesstask;
FunctionCB m_cb[50];
int32_t m_ncb = 0;
static bool processerstate;
static process_state_t processerstate;
static tjc_packet_t* eventpacket; static tjc_packet_t* eventpacket;
static UART_HandleTypeDef* tjcUart;// static UART_HandleTypeDef* tjcUart;//
frontend_t frontend;
// //
void task_init(){ void task_init(){
@ -100,11 +99,14 @@ void eventProcessTask(void){
static tjc_packet_t packet; static tjc_packet_t packet;
packet = *(eventpacket); packet = *(eventpacket);
if(processerstate)
{
if(processerstate != sucess)
return ;
memset(&event_cache, 0, sizeof(event_cache)); memset(&event_cache, 0, sizeof(event_cache));
uint8_t packetType = packet.data[0]; uint8_t packetType = packet.data[0];
if (packetType == tjc_button_event){ if (packetType == tjc_button_event){
event_cache.event_id = packet.data[0]; event_cache.event_id = packet.data[0];
event_cache.pid = packet.data[1]; event_cache.pid = packet.data[1];
event_cache.bid = packet.data[2]; event_cache.bid = packet.data[2];
@ -126,35 +128,37 @@ void eventProcessTask(void){
callUsrEventCb(&event_cache); callUsrEventCb(&event_cache);
} }
processerstate = ending;
}
} }
void Front_initialize(void){ void Front_initialize(void){
Task_init(&usartRxtask); Task_init(&usartRxtask);
//Task_init(&eventProcesstask);
Task_init(&eventProcesstask);
} }
void Front_startSchedule(void) void Front_startSchedule(void)
{ {
//uart_start注册数据处理 //uart_start注册数据处理
Task_start(uartRxTask,&usartRxtask); Task_start(uartRxTask,&usartRxtask);
//Task_start(eventProcessTask,&usartRxtask);
Task_start(eventProcessTask,&eventProcesstask);
} }
void regOnUsrEventCb(FunctionCB cb){
m_cb[m_ncb] = cb;
m_ncb++;
//id信息
//isbelongpage参数同步对应页面函数
void regOnUsrEventCb(FunctionCB cb, uint8_t page){
frontend.m_cb[frontend.m_ncb] = cb;
frontend.isbelongpage[frontend.m_ncb] = page;
frontend.m_ncb++;
} }
void callUsrEventCb(tjc_event_t* event){ void callUsrEventCb(tjc_event_t* event){
for (int32_t i = 0; i < m_ncb; i++) {
m_cb[i](event);
for (int32_t i = 0; i < frontend.m_ncb; i++) {
frontend.m_cb[i](event,frontend.isbelongpage[i]);
} }
} }

15
Usr/service/front_end_controler.h

@ -18,18 +18,25 @@ typedef struct {
typedef enum{ typedef enum{
error, error,
sucess, sucess,
} process_state;
ending,
} process_state_t;
typedef void (*FunctionCB)(tjc_event_t*);
typedef void (*FunctionCB)(tjc_event_t*,uint8_t);
extern uint8_t IsBelongPage;
typedef struct{
FunctionCB m_cb[50];
int32_t m_ncb;
uint8_t isbelongpage[50];
}frontend_t;
void Front_startSchedule(void); void Front_startSchedule(void);
void Front_initialize(void); void Front_initialize(void);
void regOnUsrEventCb(FunctionCB cb);
void regOnUsrEventCb(FunctionCB cb, uint8_t page);
void callUsrEventCb(tjc_event_t* event); void callUsrEventCb(tjc_event_t* event);

8
Usr/service/page/Page_SettingTime.c

@ -1,12 +1,14 @@
#include "Page_SettingTime.h" #include "Page_SettingTime.h"
#include "front_end_controler.h"
#define TAG "Page_SettingTime" #define TAG "Page_SettingTime"
void OnPageLoade_settingtime(){
void OnPageLoade_settingtime(){
ZLOGI(TAG, "OnPageLoade_settingtime");
} }
void OnPageButton_settingtime(uint8_t bid, uint8_t val){ void OnPageButton_settingtime(uint8_t bid, uint8_t val){
ZLOGI(TAG, "OnPageLoade_settingtime bid:%d val:%d", bid, val);
} }

4
Usr/service/page/Page_SettingTime.h

@ -1,5 +1,5 @@
#pragma once #pragma once
#include "stm32f4xx_hal.h"
#include "page_processer.h"
void OnPageLoade_settingtime(); void OnPageLoade_settingtime();
void OnPageButton_settingtime(uint8_t bid, uint8_t val);
void OnPageButton_settingtime(uint8_t bid, uint8_t val);

8
Usr/service/page/Page_main.c

@ -1,13 +1,17 @@
#include "Page_main.h" #include "Page_main.h"
#include "front_end_controler.h"
#define PAGE pg_main #define PAGE pg_main
#define TAG "Page_main" #define TAG "Page_main"
void OnPageLoad_main(){
void OnPageLoad_main(){
ZLOGI(TAG, "OnPageLoad_main");
} }
void OnPageButton_main(uint8_t bid, uint8_t val){ void OnPageButton_main(uint8_t bid, uint8_t val){
ZLOGI(TAG, "OnPageButton_main bid:%d val:%d", bid, val);
} }

6
Usr/service/page/Page_main.h

@ -1,7 +1,7 @@
#pragma once #pragma once
#include "stm32f4xx_hal.h"
//#include "stm32f4xx_hal.h"
#include "page_processer.h"
void OnPageLoad_main(); void OnPageLoad_main();
void OnPageButton_main(uint8_t bid, uint8_t val);
void OnPageButton_main(uint8_t bid, uint8_t val);

32
Usr/service/page/page_processer.c

@ -1,28 +1,21 @@
#include "page_processer.h" #include "page_processer.h"
#include "front_end_controler.h" #include "front_end_controler.h"
#include "Page_main.h"
#include "Page_SettingTime.h"
static bool Page_Mrg = false;
#define TAG "page_Processer"
//
PageProcesser init[] = { PageProcesser init[] = {
{OnPageLoad_main,OnPageButton_main}, {OnPageLoad_main,OnPageButton_main},
{OnPageLoade_settingtime,OnPageButton_settingtime}, {OnPageLoade_settingtime,OnPageButton_settingtime},
}; };
void page_processer(tjc_event_t* event, uint8_t page){
uint8_t JudgePage(uint8_t page){
switch(page){
case pg_main: return 1;break;
case pg_SettingTime: return 1;break;
default: return 0;break;
}
}
void page_processer(tjc_event_t* event){
uint8_t page;
if(!JudgePage(event->pid))
return ;
page = event->pid;
if(page != event->pid)return;
ZLOGI(TAG, "page:%d",page);
if(event->event_id == tjc_sys_event_page_id){ if(event->event_id == tjc_sys_event_page_id){
init[page].OnPageLoad(); init[page].OnPageLoad();
}else if(event->event_id == tjc_button_event){ }else if(event->event_id == tjc_button_event){
@ -30,10 +23,13 @@ void page_processer(tjc_event_t* event){
} }
} }
void Page_initialize(uint8_t page)
{
regOnUsrEventCb(page_processer);
}
/*
* @brief id
*
*
*/
void Page_initialize(uint8_t page) {regOnUsrEventCb(page_processer, page);}

14
Usr/service/page/page_processer.h

@ -1,20 +1,16 @@
#pragma once #pragma once
#include "Page_main.h"
#include "Page_SettingTime.h"
#include <stdint.h>
#include "ui.h" #include "ui.h"
// extern PageProcesser Page_initialize;
// typedef enum{
// Page_main,
// Page_SetingTime,
// } page_t;
#include "tjc_processer.h"
#include "zlog.h"
typedef struct { typedef struct {
void (*OnPageLoad)(); void (*OnPageLoad)();
void (*OnPageButton)(uint8_t,uint8_t); void (*OnPageButton)(uint8_t,uint8_t);
} PageProcesser; } PageProcesser;
void page_processer(tjc_event_t* event, uint8_t page);
void Page_initialize(uint8_t page); void Page_initialize(uint8_t page);

5
stm32basic/ztask.c

@ -10,11 +10,10 @@
*/ */
void Task_init(Task_t* task){ void Task_init(Task_t* task){
if(task->TaskNotify){ if(task->TaskNotify){
task->TaskNotify--; task->TaskNotify--;
if(task->m_tasktransition){ if(task->m_tasktransition){
task->m_status = working; task->m_status = working;
ZLOGI(TAG, "task_init");
//ZLOGI(TAG, "task_init");
if(task->m_taskfunc) task->m_taskfunc(); if(task->m_taskfunc) task->m_taskfunc();
task->m_status = end; task->m_status = end;
} }
@ -50,6 +49,6 @@ void Task_start(taskfuction cb, Task_t* task){
task->m_tasktransition = true;//: task->m_tasktransition = true;//:
task->TaskNotify++; // task->TaskNotify++; //
} }
ZLOGI(TAG, "TaskNotify: %d", task->TaskNotify);
//ZLOGI(TAG, "TaskNotify: %d", task->TaskNotify);
} }

4
stm32basic/ztask.h

@ -1,11 +1,9 @@
#pragma once #pragma once
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h>
#include "zlog.h" #include "zlog.h"
//extern taskfuction m_taskfunc;
#include <stdint.h>
typedef void (*taskfuction)(); typedef void (*taskfuction)();
//typedef void (*taskfuction)(taskfuction);
// //
typedef enum{ typedef enum{

BIN
ui/ui.HMI

Loading…
Cancel
Save