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

📄 module.c

📁 Keil平台
💻 C
📖 第 1 页 / 共 5 页
字号:
        case DATA_MKCFG:
            value = Krmk[module].mk_cfg[index];
//            SPut(eeprom_addr, 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 = Commk[module].mk_cfg[index];
//            SPut(eeprom_addr, value);
            switch (index)
            {
            //case 0: ComSetBaud(module, value);  break;
            //case 1: ComSetParity(module, value);  break;
            }
            break;
        case DATA_ALM:  break;
        default:        break;
        }
        break;
    default:
        value = 0;
        break;
    }
}
/*****************************************************************************/
int GetEepromAddr(uchar type, uchar index, uchar module)
{
    int  addr_base, addr_offset;
    switch (type & MASK_MODULE)
    {
    case MODULE_JKMK:
       addr_base = ADDR_JKMK;
       switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            addr_offset = FAR (&Jkmk.mk_cfg[index]) - FAR (&Jkmk);
//            addr_offset <<= 1;
            addr_offset = 0 + index*2;
            break;
        case DATA_AICFG:
//            addr_offset = FAR (&Jkmk.ai_cfg[index]) - FAR (&Jkmk);
//            addr_offset <<= 1;
            addr_offset = JK_ADDR_AICFG + index*2;
            break;
        case DATA_AOCFG:
//            addr_offset = FAR (&Jkmk.ao_cfg[index]) - FAR (&Jkmk);
//            addr_offset <<= 1;
            addr_offset = JK_ADDR_AOCFG + index*2;
            break;
        case DATA_ALMCFG:
//            addr_offset = FAR (&Jkmk.alm_cfg[index]) - FAR (&Jkmk);
//            addr_offset <<= 1;
            addr_offset = JK_ADDR_ALMCFG + index*2;
            break;
        case DATA_TMCFG:
//            addr_offset = FAR (&Jkmk.tm_cfg[index]) - FAR (&Jkmk);
//            addr_offset <<= 1;
            addr_offset = JK_ADDR_TMCFG + index*2;
            break;
        case DATA_TM:
//            addr_offset = FAR (&Jkmk.tm_v[index]) - FAR (&Jkmk);
//            addr_offset <<= 1;
            addr_offset = JK_ADDR_TMV + index*2;
            break;

        case DATA_DICFG:
//            addr_offset = FAR (&Jkmk.di_cfg[index]) - FAR (&Jkmk);
//            value = SGetB(eeprom_addr);
            addr_offset = JK_ADDR_DICFG + index;
            break;
        case DATA_DOCFG:
//            addr_offset = FAR (&Jkmk.do_cfg[index]) - FAR (&Jkmk);
//            value = SGetB(eeprom_addr);
            addr_offset = JK_ADDR_DOCFG +index;
            break;
        case DATA_ALMMAP:
//            addr_offset = FAR (&Jkmk.alm_map[index]) - FAR (&Jkmk);
//            value = SGetB(eeprom_addr);
            addr_offset = JK_ADDR_ALMMAP + index;
            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:
        addr_base = ADDR_CDMK + SIZE_CDMK*module;
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            addr_offset = FAR (&Cdmk[module].mk_cfg[index]) - FAR (&Cdmk[module].mk_cfg[0]);
//            addr_offset <<= 1;
            addr_offset = index*2;
            break;
        /*
        case DATA_AI:   break;
        case DATA_AO:   break;
        case DATA_DI:   break;
        case DATA_ALM:  break;
        */
        default: break;
        }
        break;
    case MODULE_JYMK:
        addr_base = ADDR_JYMK + SIZE_JYMK*module;
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            addr_offset = FAR (&Jymk[module].mk_cfg[index]) - FAR (&Jymk[module]);
//            addr_offset <<= 1;
            addr_offset = index*2;
            break;
        case DATA_AI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_DDMK:
        addr_base = ADDR_DDMK + SIZE_DDMK*module;
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            addr_offset = FAR (&Ddmk[module].mk_cfg[index]) - FAR (&Ddmk[module]);
//            addr_offset <<= 1;
            addr_offset = index*2;
            break;
        case DATA_AI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_KRMK:
        addr_base = ADDR_KRMK + SIZE_KRMK*module;
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            addr_offset = FAR (&Krmk[module].mk_cfg[index]) - FAR (&Krmk[module]);
//            addr_offset <<= 1;
            addr_offset = index*2;
            break;
        case DATA_DI:   break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    case MODULE_COMMK:
        addr_base = ADDR_COMMK + SIZE_COMMK*module;
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
//            addr_offset = FAR (&Commk[module].mk_cfg[index]) - FAR (&Commk[module]);
//            addr_offset <<= 1;
            addr_offset = index*2;
            break;
        case DATA_ALM:  break;
        default: break;
        }
        break;
    default:
        break;
    }
    return addr_base + addr_offset;
}
/*****************************************************************************/
void SetModuleData(uchar type, uchar index, uchar module, int value)
{
    switch (type & MASK_MODULE)
    {
    case MODULE_JKMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:    Jkmk.mk_cfg[index] = value; 
            switch (index)
            {
            case 8:
                if (value == 0)
                {
//                    SetChargeStep(0);
                }
//                SetVoltaget(); 
                break;
            case 6:
            case 7:
                if (Jkmk.mk_cfg[7] < Jkmk.mk_cfg[6])
                {
                     Jkmk.mk_cfg[7] = Jkmk.mk_cfg[6];
                }
//                SetVoltaget(); 
                break;
            case 10:
            case 30:
//                TranOutI();
                break;
            }

            break;
        case DATA_AICFG:    Jkmk.ai_cfg[index] = value; break;
        case DATA_AOCFG:    
            Jkmk.ao_cfg[index] = value;
            switch (index)
            {
//            case 0:  SetVoltaget(); break;
//            case 1:  LimitCurrent(); break;
            }
            break;
        case DATA_ALMCFG:   Jkmk.alm_cfg[index] = value;break;
        case DATA_TMCFG:    Jkmk.tm_cfg[index] = value; break;

        case DATA_DICFG:    Jkmk.di_cfg[index] = value;  break;
        case DATA_DOCFG:    Jkmk.do_cfg[index] = value;  break;
        case DATA_ALMMAP:   Jkmk.alm_map[index] = value;  break;
        case DATA_TEMP:
            Jkmk.temp[index] = value;
            switch (index)
            {
            case 28://禁止允许
                if (value == 0)
                {
                    Jkmk.temp[24] = 0;
                    Jkmk.temp[26] = 0;
                }
                break;
//            case 25:   SetChargeStep(value);      break;
            case 24://自动手动
                if (Jkmk.temp[28] == 0)
                {
                    Jkmk.temp[index] = 0;
                    MsgBox("系统信息", "禁止操作", MB_OK);
                }
                else
                {
                    if (value == 1)
                    {
                        //fuchong
//                        SetChargeStep(0);
//                        SetVoltaget(); 
                    }
                    else
                    {
                        if (value == 0)
                        {
                            //fuchong
//                            SetChargeStep(0);
                        }
                        else
                        {
                            //junchong
//                            SetChargeStep(2);
                        }
//                        SetVoltaget(); 
                    }
                }
                break;
            case 26://浮充均充
                if ((Jkmk.temp[28] == 1) && (Jkmk.temp[24] == 1))
                {
                    //手动调节
                    if (value == 0)
                    {
                        //fuchong
//                        SetChargeStep(0);
                    }
                    else
                    {
                        //junchong
//                        SetChargeStep(2);
                    }
//                    SetVoltaget(); 
                }
                else
                {
                    MsgBox("系统信息", "禁止操作", MB_OK);
                    Jkmk.temp[index] = 0;
                }
                break;
            }//switch (index)
            break;
        case DATA_AI:       Jkmk.ai_v[index] = value;   break;
        case DATA_AO:       Jkmk.ao_v[index] = value;   break;
        case DATA_DI:       Jkmk.di_v[index] = value;   break;
        case DATA_DO:       
            Jkmk.do_v[index] = value;   
            if (Jkmk.do_v[index])
            {
//                HardOut(index, 1);
            }
            else
            {
//                HardOut(index, 0);
            }
            break;
        case DATA_ALM:      Jkmk.alm_v[index] = value;  break;
        case DATA_ALMOUT:   Jkmk.alm_out[index] = value; break;
        case DATA_TM:       Jkmk.tm_v[index] = value;   break;
        default: break;
        }
        break;
    case MODULE_CDMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:
            if ((index < 3) || (8 == index))
            {
                Cdmk[module].mk_cfg[index] = value;
                //nothing
            }
            else
            {
                if (Cdmk[module].mk_cfg[8] && Jkmk.temp[28])
                {
                    Cdmk[module].mk_cfg[index] = value;
                    switch (index)
                    {
//                    case 3:  SetCdmk(module, 0x1601); break;
//                    case 4:  SetCdmk(module, 0x1602); break;
                    }
                    
                }
                else
                {
                    if (Jkmk.temp[28] == 0)
                    {
                        MsgBox("系统信息", "自动方式,禁止操作", MB_OK);
                    }
                    else
                    {
                        MsgBox("系统信息", "禁止操作", MB_OK);
                    }
                }
            }
            break;
        case DATA_AI:       Cdmk[module].ai_v[index] = value;   break;
        case DATA_AO:
            if (Cdmk[module].mk_cfg[8])
            {
                Cdmk[module].ao_v[index] = value;
                switch (index)
                {
//                case 0:SetCdmk(module, 0x1A07); break;
//                case 1:SetCdmk(module, 0x1A01); break;
                }
            }
            else
            {
                MsgBox("系统信息", "禁止操作", MB_OK);
            }
            break;
        case DATA_DI:       Cdmk[module].di_v[index] = value;   break;
        case DATA_DO:       
            if (Cdmk[module].mk_cfg[8])
            {
                Cdmk[module].do_v[index] = value;
//                SetCdmk(module, 0x1A04);
            }
            else
            {
                MsgBox("系统信息", "禁止操作", MB_OK);
            }
            break;
        case DATA_ALM:      Cdmk[module].alm_v[index] = value;  break;
        default: break;
        }
        break;
    case MODULE_JYMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:    
            Jymk[module].mk_cfg[index] = value; 
            switch (index)
            {
            case 4:
//                TranJymkAlarmLimit();
                break;
            default: break;
            }

            break;
        case DATA_AI:       Jymk[module].ai_v[index] = value;   break;
        case DATA_ALM:      Jymk[module].alm_v[index] = value;  break;
        default: break;
        }
        break;
    case MODULE_DDMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:    Ddmk[module].mk_cfg[index] = value; break;
        case DATA_AI:       Ddmk[module].ai_v[index] = value;   break;
        case DATA_ALM:      Ddmk[module].alm_v[index] = value;   break;
        default: break;
        }
        break;
    case MODULE_KRMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:    Krmk[module].mk_cfg[index] = value; break;
        case DATA_DI:       Krmk[module].di_v[index] = value;   break;
        case DATA_ALM:      Krmk[module].alm_v[index] = value;  break;
        default: break;
        }
        break;
    case MODULE_COMMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_MKCFG:    Commk[module].mk_cfg[index] = value;break;
        case DATA_ALM:      Commk[module].alm_v[index] = value; break;
        default: break;
        }
        break;
    default:
        value = 0;
        break;
    }
}
/*****************************************************************************/
int  GetModuleData(uchar type, uchar index, uchar module)
{
    int value;
    switch (type & MASK_MODULE)
    {
    case MODULE_JKMK:
        switch (type & MASK_DATA_TYPE)
        {
        case DATA_AI:       value = Jkmk.ai_v[index]; break;
        case DATA_AO:       value = Jkmk.ao_v[index]; break;
        case DATA_DI:       value = Jkmk.di_v[index]; break;
        case DATA_DO:       value = Jkmk.do_v[index]; break;
        case DATA_ALM:      value = Jkmk.alm_v[index]; break;
        case DATA_ALMOUT:   value = Jkmk.alm_out[index]; break;

⌨️ 快捷键说明

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