//############################################################################## #if(ENABLE_KEY_FUNCTION) //############################################################################## #ifndef __StdKeyEdit_h__ #define __StdKeyEdit_h__ //low power keyboard define #define KEYBOARD_IDLE_TIME_BASIC (4095) // 键盘闲置时间 1S #define KEYBOARD_IDLE_TIME (60) #define LEVEL_1_PASSWORD 1111 #define LEVEL_2_PASSWORD 2222 #define LEVEL_3_PASSWORD 520 #define LEVEL_4_PASSWORD 4444 #define KEY_INIT_PASSWORD 0 #define KEY_SET_METERFACTOR 1 #define KEY_SET_COEFFIC 2 #define KEY_CALIB_OFFSETC 3 #define KEY_SET_PULSE 4 #define KEY_SET_ADDR 5 #define KEY_SET_DECIMAL_POINT 6 #define KEY_SET_RETURN 7 //****************************************************************************** // KEY FUNCTION DEFINE #define STD_INIT_PASSWORD 0 //接口类(F1-F10) #define STD_KEY_PRTCL 1 // F1 通讯协议 PRTCL #define STD_KEY_ADDR 2 // F2 从机地址 ADDR #define STD_KEY_BPS 3 // F3 波特率 BPS // 流量类(F11-F30) #define STD_KEY_OFFST 11 // F11 校准零点 OFFST #define STD_KEY_GCF 12 // F12 GCF GCF #define STD_KEY_FACTR 13 // F13 仪表系数 FACTR #define STD_KEY_CORR 14 // F14 二次修正系数 CORR #define STD_KEY_FS 15 // F15 量程设置 FS #define STD_KEY_RESPS 16 // F16 响应时间 RESPS #define STD_KEY_CUT_F 28 // F28 小流量切除 CUT-F #define STD_KEY_DIAM 29 // F29 管径设置 DIAM // 显示类(F31-F40) #define STD_KEY_UNT_A 31 // F31 累积流量单位 UNT-A #define STD_KEY_UNT_F 32 // F32 实时流量单位 UNT-F #define STD_KEY_UNT_P 33 // F33 压力单位 UNT-P #define STD_KEY_DISP 39 // F39 显示模式 DISP // 模拟接口类(F31-F40) #define STD_KEY_PULSE 41 // F41 脉冲当量 PULSE // 报警类(F41-F50) #define STD_KEY_ALM_H 51 // F51 高流量报警 ALM-H #define STD_KEY_ALM_L 52 // F52 低流量报警 ALM-L #define STD_KEY_ALM_A 53 // F53 总量报警上限 ALM-A #define STD_KEY_ALM_T 54 // F54 时间报警 ALM-T // 无线类(F71-F90) #define STD_KEY_LORA_ADDR 71 // F71 LORA本机地址 LR-ID #define STD_KEY_LORA_ID 72 // F72 LORA上级地址 NETID #define STD_KEY_LORA_CHAN 73 // F73 LORA信道 LR_CH // 操作类(F91-F98) #define STD_KEY_PASS 91 // F91 设置密码 PASS #define STD_KEY_CLR_A 92 // F92 清除总流量 CLR-A #define STD_KEY_CLR_T 93 // F93 清除时间 CLR-T #define STD_KEY_RESET_DCOEF 94 // F94 恢复二次修正 RS2ND // 退出 #define STD_KEY_QUIT 99 // F99 退出设置 QUIT #define STD_RETURN 100 // 退出键盘操作 //****************************************************************************** // 按键功能显示区定义 #define FUN_PROMPT1 0 #define FUN_PROMPT2 1 #define FUN_PROMPT3 2 #define FUN_PROMPT4 3 #define FUN_PROMPT5 4 #define FUN_DECIMAL 5 // #define FUN_CODE_1 10 #define FUN_CODE_2 11 #define FUN_CODE_3 12 #define FUN_CODE_4 13 //****************************************************************************** // 按键保持时间定义 #define KEY_RESPONSE_TIME 1600 #define KEY_HOLD_TIME 32768 #define KEY_FREE_TIME 1600 //****************************************************************************** #define DIS_PARA_INT 0 #define DISPLAY_MENU 1 #define FLASH_BIT 2 //****************************************************************************** #define NEXT 0 #define SAVE 1 #define NO 2 //****************************************************************************** extern unsigned int setKeyType, setIndex; extern unsigned int keyDealFlag; extern bool isKeyPressed; extern unsigned int keyFlag, PassWord, totalTime, keyValue, keyBuff, menuIndex, modifyBit, keyFlashTime, timerTar; extern unsigned long int setKeyBuffer; extern unsigned long int temp_dcoefNode[]; extern unsigned int temp_dcoefNum, temp_dcoefVal[]; //****************************************************************************** void DisplayForKeyOperation(void); __interrupt void KeyInterrupt_isr(void); void KeyReset(void); void DisableKeyInterrupt(void); void EnableKeyInterrupt(void); void KeyEditInit(void); void FlashBitForSetup(void); void ComputeTime(void); void ReadKeyValue(void); unsigned long int ComputeSumOfFiveDigits(unsigned int modifyFirstBit, unsigned int modifyLastBit); void JudgeKeySetMax(unsigned int setBit, unsigned int endBit); void JudgeKeySetMin(unsigned int setBit, unsigned int endBit); void InitOfSettingArea(unsigned long int setValue, unsigned int startBit, unsigned int setLen); void InitOfSettingPrompt(const unsigned char *PromptF, const unsigned char *Prompt); void ReturnKeySetup(void); void SettingKeyPrompt(const unsigned char *Prompt); void JudgeSaveAndReturn(unsigned long int judgeValue, unsigned int setGain); bool KeyValueOperation(unsigned int modifyFirstBit, unsigned int modifyLastBit); bool KeyValueOperateForPrompt(const unsigned char *Prompt); void DisplaySetIndex(void); unsigned int SaveModifyValue(void); void ExitKeyOperation(void); bool KeyPasswordInput(void); void JudgePasswordInput(unsigned int activePassword); bool ExitCurrentSetup(void); void ModifyMeterFactor(void); void ModifyDcoefNum(void); void SelectDcoefNode(void); void ModifyDcoefNode(void); void ModifyDcoefVal(void); void ModifyDcoefNodeAndValue(void); void ModifyMaxFlowRate(void); void ModifySamplingInterval(void); void ResetDcoefNodeAndValue(void); void CalibrateOffsetC(void); void ModifyWorkDiameter(void); void ModifyLPFactoryLiterPerPulse(void); void ModifyModBusAdr(void); void ModifyUartDecimalPoint(void); void KeyInputProcessing(void); #endif //############################################################################## #endif //##############################################################################