PresetTask.c 3.5 KB
#include "JZsdkLib.h"

#include "BaseConfig.h"

#define PRESET_TASK_FALG_PATH "/root/preset_task_flag"

static U8_t g_PrsetTask_Flag = JZ_FLAGCODE_OFF; //预设任务的开启标志位
static U8_t g_PrsetTask_FinishFlag = JZ_FLAGCODE_OFF; //预设任务执行步骤

/*******************
 * 
 *  创建一个预设任务
 * 
 * 
 * ***************/
T_JZsdkReturnCode PrsetTask_CreatePrsetTask()
{
    T_JZsdkReturnCode ret;



#ifdef MEGAPHONE_CONFIG_STATUS_ON

    JZSDK_LOG_INFO("喊话器配置已已打开,创建一个喊话器预设任务");

#endif

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}

/*******************
 * 
 *  开启关闭预设任务
 * 
 * ***************/
T_JZsdkReturnCode PrsetTask_SetPrsetTaskFlag(U8_t flag)
{
    T_JZsdkReturnCode ret;
    int realLen;

    T_JZsdkFSHandler *FSHandler = JZsdk_Platform_GetFSHandler();
    T_JZsdkFileHandle FileHandle;

    ret = FSHandler->FileOpen(PRESET_TASK_FALG_PATH, FS_READ_AND_WRITE_CLEAR, &FileHandle);
    if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
    {
        JZSDK_LOG_ERROR("预设任务标志位文件打开失败");
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    ret = FSHandler->FileWrite_U8(FileHandle, &flag, 1, &realLen);
    if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
    {
        JZSDK_LOG_ERROR("预设任务标志位写入失败");
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    ret = FSHandler->FileClose(FileHandle);
    if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
    {
        JZSDK_LOG_ERROR("预设任务标志位文件关闭失败");
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    //将开启关闭放入
    g_PrsetTask_Flag = flag;

    if ()
    {
        /* code */
    }
    

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}

T_JZsdkReturnCode PrsetTask_Init()
{
    T_JZsdkReturnCode ret;
    int realLen;

    T_JZsdkOsalHandler *OsalHandler = JZsdk_Platform_GetOsalHandler();
    T_JZsdkFSHandler *FSHandler = JZsdk_Platform_GetFSHandler();

    //1、读取本地的预设任务标志位
    T_JZsdkFileHandle FileHandle;
    ret = FSHandler->FileOpen(PRESET_TASK_FALG_PATH, FS_ONLY_READ, &FileHandle);
    if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
    {
        JZSDK_LOG_ERROR("预设任务标志位获取失败,没有预设的任务");
        ret = FSHandler->FileOpen(PRESET_TASK_FALG_PATH, FS_READ_AND_WRITE_CLEAR, &FileHandle);
        if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
        {
            JZSDK_LOG_ERROR("预设任务标志位文件创建失败");
            return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
        }
        
        ret = FSHandler->FileWrite_U8(FileHandle, &g_PrsetTask_Flag, 1, &realLen);
        if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
        {
            JZSDK_LOG_ERROR("预设任务标志位写入失败");
            return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
        }

        g_PrsetTask_Flag = JZ_FLAGCODE_OFF;
        return ret;
    }
    
    //2、读取标志位
    ret = FSHandler->FileRead_U8(FileHandle, &g_PrsetTask_Flag, 1, &realLen);
    if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
    {
        JZSDK_LOG_ERROR("预设任务标志位读取失败");
        g_PrsetTask_Flag = JZ_FLAGCODE_OFF;
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    //3、关闭文件
    ret = FSHandler->FileClose(FileHandle);
    if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
    {
        JZSDK_LOG_ERROR("预设任务标志位文件关闭失败");
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    return ret;
}