⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module.c

📁 Keil平台
💻 C
📖 第 1 页 / 共 5 页
字号:
    }
}
/*****************************************************************************/
/* return 0 is null return 1 is one module*/
int  GetModuleCount(uchar type)
{
    int count = 0;
    switch (type & MASK_MODULE)
    {
    case MODULE_JKMK:
        count = 1;
        break;
    case MODULE_CDMK:
        count = Jkmk.mk_cfg[51];
        if (count > MAX_CDMK)
             count = MAX_CDMK;
        break;
    case MODULE_JYMK:
        count = Jkmk.mk_cfg[54];
        if (count > MAX_JYMK)
             count = MAX_JYMK;
        break;
    case MODULE_DDMK:
        count = Jkmk.mk_cfg[53];
        if (count > MAX_DDMK)
             count = MAX_DDMK;
        break;
    case MODULE_KRMK:
        count = Jkmk.mk_cfg[55];
        if (count > MAX_KRMK)
             count = MAX_KRMK;
        break;
    case MODULE_COMMK:
//        count = Jkmk.mk_cfg[49];
        count = MAX_SETUP_COMPORT;
        if (count > MAX_COMMK)
             count = MAX_COMMK;
        break;
    default:
        count = 0;
        break;
    }
    return count;
}
/*****************************************************************************/
int RatingCurrent(void)
{
    switch (Jkmk.mk_cfg[5])
    {
    case 0: Jkmk.temp[30] = Jkmk.mk_cfg[51] * 50; break;   //5A
    case 1: Jkmk.temp[30] = Jkmk.mk_cfg[51] * 100; break;  //10A
    case 2: Jkmk.temp[30] = Jkmk.mk_cfg[51] * 200; break;  //20A
    }
    if (Jkmk.temp[30] == 0)
    {
        Jkmk.temp[30] = 100;
        return 100; //!!!! ERROR  X/0 !!
    }
    else
    {
        Jkmk.temp[30];
    }
}
/*****************************************************************************/
int CdmkCurrentLimit(void)
{
    int i, unit_count;
    int i_limit = 0;
    unit_count = GetModuleCount(MODULE_CDMK);
    if (unit_count == 0)
    {
        return 100;
    }
    for (i = 0; i < unit_count; i++)
    {
         i_limit += Cdmk[i].ai_v[3];
    }
    return (i_limit/unit_count)*10;
}
/*****************************************************************************/
void LoadModule(void)
{
    uchar index, module;    //load
    //load jkmk 
    for (index = 0; index < 80; index++)
        LoadModuleData(MODULE_JKMK|DATA_MKCFG, index, 0);

    for (index = 0; index < 90; index++)
        LoadModuleData(MODULE_JKMK|DATA_AICFG, index, 0);
    
    for (index = 0; index < 10; index++)
        LoadModuleData(MODULE_JKMK|DATA_AOCFG, index, 0);

    for (index = 0; index < 40; index++)
    {
        LoadModuleData(MODULE_JKMK|DATA_ALMCFG, index, 0);
    }
    for (index = 0; index < 30; index++)
    {
        LoadModuleData(MODULE_JKMK|DATA_ALMMAP, index, 0);
    }

    for (index = 0; index < 20; index++)
        LoadModuleData(MODULE_JKMK|DATA_DICFG, index, 0);

    for (index = 0; index < 10; index++)
        LoadModuleData(MODULE_JKMK|DATA_DOCFG, index, 0);

    for (index = 0; index < 10; index++)
        LoadModuleData(MODULE_JKMK|DATA_TMCFG, index, 0);

    //load cdmk 
    for (module = 0; module < MAX_CDMK; module++)
    {
        for (index = 0; index < 10; index++)
            LoadModuleData(MODULE_CDMK|DATA_MKCFG, index, module);
    }
    //load jymk 
    for (module = 0; module < MAX_JYMK; module++)
    {
        for (index = 0; index < 20; index++)
            LoadModuleData(MODULE_JYMK|DATA_MKCFG, index, module);
    }
    //load ddmk 
    for (module = 0; module < MAX_DDMK; module++)
    {
        for (index = 0; index < 20; index++)
            LoadModuleData(MODULE_DDMK|DATA_MKCFG, index, module);
    }
    //load krmk
    for (module = 0; module < MAX_KRMK; module++)
    {
        for (index = 0; index < 10; index++)
            LoadModuleData(MODULE_KRMK|DATA_MKCFG, index, module);
    }
    //load commk
    for (module = 0; module < MAX_COMMK; module++)
    {
        for (index = 0; index < 20; index++)
            LoadModuleData(MODULE_COMMK|DATA_MKCFG, index, module);
    }

}
/*****************************************************************************/
void SaveModule(void)
{
    uchar  index, module;
    //save default jkmk 
    for (index = 0; index < 100; index++)
        SaveModuleData(MODULE_JKMK|DATA_MKCFG, index, 0);

    for (index = 0; index < 100; index++)
        SaveModuleData(MODULE_JKMK|DATA_AICFG, index, 0);
    
    for (index = 0; index < 10; index++)
        SaveModuleData(MODULE_JKMK|DATA_AOCFG, index, 0);

    for (index = 0; index < 40; index++)
        SaveModuleData(MODULE_JKMK|DATA_ALMCFG, index, 0);

    for (index = 0; index < 30; index++)
        SaveModuleData(MODULE_JKMK|DATA_ALMMAP, index, 0);

    for (index = 0; index < 20; index++)
        SaveModuleData(MODULE_JKMK|DATA_DICFG, index, 0);

    for (index = 0; index < 10; index++)
        SaveModuleData(MODULE_JKMK|DATA_DOCFG, index, 0);

    for (index = 0; index < 10; index++)
        SaveModuleData(MODULE_JKMK|DATA_TMCFG, index, 0);

    //save default cdmk 
    for (module = 0; module < MAX_CDMK; module++)
    {
        for (index = 0; index < 10; index++)
            SaveModuleData(MODULE_CDMK|DATA_MKCFG, index, module);
    }
    //save default jymk 
    for (module = 0; module < MAX_JYMK; module++)
    {
        for (index = 0; index < 10; index++)
            SaveModuleData(MODULE_JYMK|DATA_MKCFG, index, module);
    }
    //save default ddmk 
    for (module = 0; module < MAX_DDMK; module++)
    {
        for (index = 0; index < 20; index++)
            SaveModuleData(MODULE_DDMK|DATA_MKCFG, index, module);
    }
    //save default krmk 
    for (module = 0; module < MAX_KRMK; module++)
    {
        for (index = 0; index < 10; index++)
            SaveModuleData(MODULE_KRMK|DATA_MKCFG, index, module);
    }
    //save default commk 
    for (module = 0; module < MAX_COMMK; module++)
    {
        for (index = 0; index < 10; index++)
            SaveModuleData(MODULE_COMMK|DATA_MKCFG, index, module);
    }
}
/*****************************************************************************/

/*****************************************************************************/
/*****************************************************************************/
void LoadModuleData(uchar type, uchar index, uchar module)
{
    int value;
    int  eeprom_addr;
//    eeprom_addr = GetEepromAddr(type, index, module);
    switch (type & MASK_MODULE)
    {
    case MODULE_JKMK:
       switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            value = SGet(eeprom_addr);
            Jkmk.mk_cfg[index] = value;
            break;
        case DATA_AICFG:
//            value = SGet(eeprom_addr);
            Jkmk.ai_cfg[index] = value;
            break;
        case DATA_AOCFG:
//            value = SGet(eeprom_addr);
            Jkmk.ao_cfg[index] = value;
            break;
        case DATA_ALMCFG:
//            value = SGet(eeprom_addr);
            Jkmk.alm_cfg[index] = value;
            break;
        case DATA_TMCFG:
//            value = SGet(eeprom_addr);
            Jkmk.tm_cfg[index] = value;
            break;
        case DATA_TM:
//            value = SGet(eeprom_addr);
            Jkmk.tm_v[index] = value;
            break;

        case DATA_DICFG:
//            value = SGetB(eeprom_addr);
            Jkmk.di_cfg[index] = value;
            break;
        case DATA_DOCFG:
//            value = SGetB(eeprom_addr);
            Jkmk.do_cfg[index] = value;
            break;
        case DATA_ALMMAP:
//            value = SGetB(eeprom_addr);
            Jkmk.alm_map[index] = value;
            break;
            /*
        case DATA_TEMP: break;
        case DATA_AI:   break;
        case DATA_AO:   break;
        case DATA_DI:   break;
        case DATA_DO:   break;
        case DATA_ALM:  break;
        */
        default: break;
        }
        break;
    case MODULE_CDMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            value = SGet(eeprom_addr);
            Cdmk[module].mk_cfg[index] = value;
            break;
            /*
        case DATA_AI:   break;
        case DATA_AO:   break;
        case DATA_DI:   break;
        case DATA_ALM:  break;
        */
        default: break;
        }
        break;
    case MODULE_JYMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            value = SGet(eeprom_addr);
            Jymk[module].mk_cfg[index] = value;
            break;
        case DATA_AI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_DDMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            value = SGet(eeprom_addr);
            Ddmk[module].mk_cfg[index] = value;
            break;
        case DATA_AI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_KRMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            value = SGet(eeprom_addr);
            Krmk[module].mk_cfg[index] = value;
            break;
        case DATA_DI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_COMMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            value = SGet(eeprom_addr);
            Commk[module].mk_cfg[index] = value;
            break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    default:
        value = 0;
        break;
    }
}
/*****************************************************************************/
void SaveModuleData(uchar type, uchar index, uchar module)
{
    int value;
    int eeprom_addr;
//    eeprom_addr = GetEepromAddr(type, index, module);
    switch (type & MASK_MODULE)
    {
    case MODULE_JKMK:
       switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
            value = Jkmk.mk_cfg[index];
//            SPut(eeprom_addr, value);
            break;
        case DATA_AICFG:
            value = Jkmk.ai_cfg[index];
//            SPut(eeprom_addr, value);
            break;
        case DATA_AOCFG:
            value = Jkmk.ao_cfg[index];
//            SPut(eeprom_addr, value);
            break;
        case DATA_ALMCFG:
            value = Jkmk.alm_cfg[index];
//            SPut(eeprom_addr, value);
            break;
        case DATA_TMCFG:
            value = Jkmk.tm_cfg[index];
            TimerInit();
//            SPut(eeprom_addr, value);
            break;
        case DATA_TM:
            value = Jkmk.tm_v[index];
//            SPut(eeprom_addr, value);
            break;

        case DATA_DICFG:
            value = Jkmk.di_cfg[index];
            //SPutB(eeprom_addr, value);
            break;
        case DATA_DOCFG:
            value = Jkmk.do_cfg[index];
            //SPutB(eeprom_addr, value);
            break;
        case DATA_ALMMAP:
            value = Jkmk.alm_map[index];
            //SPutB(eeprom_addr, value);
            break;
        case DATA_TEMP: 
            value = Jkmk.temp[index];
            if (index < 6)
                //Write_RTC(index, value);
            break;
        /*
        case DATA_AI:   break;
        case DATA_AO:   break;
        case DATA_DI:   break;
        case DATA_DO:   break;
        case DATA_ALM:  break;
        */
        default: break;
        }
        break;
    case MODULE_CDMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
            value = Cdmk[module].mk_cfg[index];
//            SPut(eeprom_addr, value);
            break;
        /*
        case DATA_AI:   break;
        case DATA_AO:   break;
        case DATA_DI:   break;
        case DATA_ALM:  break;
        */
        default: break;
        }
        break;
    case MODULE_JYMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
            value = Jymk[module].mk_cfg[index];
//            SPut(eeprom_addr, value);
            break;
        case DATA_AI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_DDMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
            value = Ddmk[module].mk_cfg[index];
//            SPut(eeprom_addr, value);
            break;
        case DATA_AI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_KRMK:
        switch (type & MASK_DATA_TYPE)
        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -