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",
"ztask.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;
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_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); }
/* 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) {
if (huart->USR_UartITRxing) {

18
Usr/service/app_core.c

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

36
Usr/service/front_end_controler.c

@ -6,13 +6,12 @@
Task_t usartRxtask;
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 UART_HandleTypeDef* tjcUart;//
frontend_t frontend;
//
void task_init(){
@ -100,11 +99,14 @@ void eventProcessTask(void){
static tjc_packet_t packet;
packet = *(eventpacket);
if(processerstate)
{
if(processerstate != sucess)
return ;
memset(&event_cache, 0, sizeof(event_cache));
uint8_t packetType = packet.data[0];
if (packetType == tjc_button_event){
event_cache.event_id = packet.data[0];
event_cache.pid = packet.data[1];
event_cache.bid = packet.data[2];
@ -126,35 +128,37 @@ void eventProcessTask(void){
callUsrEventCb(&event_cache);
}
processerstate = ending;
}
}
void Front_initialize(void){
Task_init(&usartRxtask);
//Task_init(&eventProcesstask);
Task_init(&eventProcesstask);
}
void Front_startSchedule(void)
{
//uart_start注册数据处理
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){
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{
error,
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_initialize(void);
void regOnUsrEventCb(FunctionCB cb);
void regOnUsrEventCb(FunctionCB cb, uint8_t page);
void callUsrEventCb(tjc_event_t* event);

8
Usr/service/page/Page_SettingTime.c

@ -1,12 +1,14 @@
#include "Page_SettingTime.h"
#include "front_end_controler.h"
#define TAG "Page_SettingTime"
void OnPageLoade_settingtime(){
void OnPageLoade_settingtime(){
ZLOGI(TAG, "OnPageLoade_settingtime");
}
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
#include "stm32f4xx_hal.h"
#include "page_processer.h"
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 "front_end_controler.h"
#define PAGE pg_main
#define TAG "Page_main"
void OnPageLoad_main(){
void OnPageLoad_main(){
ZLOGI(TAG, "OnPageLoad_main");
}
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
#include "stm32f4xx_hal.h"
//#include "stm32f4xx_hal.h"
#include "page_processer.h"
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 "front_end_controler.h"
#include "Page_main.h"
#include "Page_SettingTime.h"
static bool Page_Mrg = false;
#define TAG "page_Processer"
//
PageProcesser init[] = {
{OnPageLoad_main,OnPageButton_main},
{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){
init[page].OnPageLoad();
}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
#include "Page_main.h"
#include "Page_SettingTime.h"
#include <stdint.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 {
void (*OnPageLoad)();
void (*OnPageButton)(uint8_t,uint8_t);
} PageProcesser;
void page_processer(tjc_event_t* event, uint8_t page);
void Page_initialize(uint8_t page);

5
stm32basic/ztask.c

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

4
stm32basic/ztask.h

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

BIN
ui/ui.HMI

Loading…
Cancel
Save