welcom ! Handel home

2024年11月28日 星期四

IOT_PCB ARM M0 共享單車主控版 RTOS 系統流程規劃

 typedef enum

{

    IOT_DEV_EXCEPTION ,      // 生產

    IOT_DEV_MAINTAIN ,      // 測試

    IOT_DEV_STOCK ,      // 入庫

    IOT_DEV_IDLE ,      // 待機

    IOT_DEV_IDLE_ALARM ,      // 低壓待機

    IOT_DEV_IDLE_SURVIVE ,      // 尋車待機回報

    IOT_DEV_WAIT_START ,      // 設備喚醒等待指令

    IOT_DEV_MOVING ,      // 出租

    IOT_DEV_PAUSE ,      // 出租暫停

    IOT_DEV_MOVING_ALARM ,      // 低壓出租

    IOT_DEV_INVALID             // 設備報廢    

} DEVICE_STATES;








# 配合 MQTT command  切換不同的 系統狀態 

//==========================================
// Device RTOS System status Run loop 
//==========================================
void dev_main(void){
switch(_iot_state) {
        case IOT_DEV_EXCEPTION:
            // 生產模式
            //printf("生產模式:連線測試 MQTT Server,不進入斷訊處理。\n");
            break;

        case IOT_DEV_MAINTAIN:
            // 測試模式
            //printf("測試模式:使用測試 PCBUUID,驗證相關功能。\n");
            break;

        case IOT_DEV_STOCK:
            // 入庫模式
            //printf("入庫模式:停止所有連線,MCU 進入深度休眠,手動喚醒。\n");
            break;

        case IOT_DEV_IDLE:
            // 待機模式
            //printf("待機模式:每 15 分鐘上報 4G PING 設備狀態及定位資訊。\n");
            break;

        case IOT_DEV_IDLE_ALARM:
            // 低壓待機
            // printf("低壓待機:降低 PING 頻率,每天上報兩次。\n");
            break;

        case IOT_DEV_IDLE_SURVIVE:
            // 尋車待機回報
           // printf("尋車待機回報:每三天上報一次,禁止出租操作。\n");
            break;

        case IOT_DEV_WAIT_START:
            // 設備喚醒等待指令
            //printf("設備喚醒:馬達移動時每 10 秒 PING,馬達停止時每 5 分鐘 PING。\n");
            break;

        case IOT_DEV_MOVING:
            // 出租模式
            //printf("出租模式:馬達移動每 10 秒 PING,停止時每 5 分鐘 PING。\n");
            break;

        case IOT_DEV_PAUSE:
            // 出租暫停
            //printf("出租暫停:回報臨時停車,監控電力狀態,判定強制待機。\n");
            break;

        case IOT_DEV_MOVING_ALARM:
            // 低壓出租
            //printf("低壓出租:回報低壓警告,監控電力狀態。\n");
            break;

        case IOT_DEV_INVALID:
            // 設備報廢
            //printf("設備報廢:停止連線運作,需由維修解除。\n");
            break;

        default:
            // 未知狀態
            //printf("未知狀態:無法處理。\n");
            break;
}
}


沒有留言: