触发原因内部详细解释

From wizarPOS
Revision as of 02:32, 23 April 2024 by Mahong (talk | contribs)

触发原因列表

未使能

  • 16384 0x4000 0100 0000 0000 0000 小电池触发
  • 8192 0x2000 0010 0000 0000 0000 小电池触发-VGL电压峰值不稳触发
  • 4096 0x1000 0001 0000 0000 0000 小电池触发-SHIELDF触发
  • 2048 0x0800 0000 1000 0000 0000 小电池触发-VDD高压触发
  • 1024 0x0400 0000 0100 0000 0000 小电池触发-VCORE高压触发
  • 512 0x0200 0000 0010 0000 0000 小电池触发-VCORE低压触发
  • 256 0x0100 0000 0001 0000 0000 小电池触发-VDD低压触发
  • 128 0x0080 0000 0000 1000 0000 小电池触发-VBAT高压触发 nter high vbat voltage triggered.
  • 64 0x0040 0000 0000 0100 0000 小电池触发-VBAT低压触发 inter low vbat voltage triggered
  • 32 0x0020 0000 0000 0010 0000 高温触发
  • 16 0x0010 0000 0000 0001 0000 低温触发

使能

  • 49152 0xC000 1100 0000 0000 0000 小电池触发
  • 40960 0xA000 1010 0000 0000 0000 小电池触发-VGL电压峰值不稳触发
  • 36864 0x9000 1001 0000 0000 0000 小电池触发-SHIELDF触发
  • 34816 0x8800 1000 1000 0000 0000 小电池触发-VDD高压触发
  • 33792 0x8400 1000 0100 0000 0000 小电池触发-VCORE高压触发
  • 33280 0x8200 1000 0010 0000 0000 小电池触发-VCORE低压触发
  • 33024 0x8100 1000 0001 0000 0000 小电池触发-VDD低压触发
  • 32896 0x8080 1000 0000 1000 0000 小电池触发-VBAT高压触发 nter high vbat voltage triggered.
  • 32832 0x8040 1000 0000 0100 0000 小电池触发-VBAT低压触发 inter low vbat voltage triggered
  • 32800 0x8020 1000 0000 0010 0000 高温触发
  • 32784 0x8010 1000 0000 0001 0000 低温触发
  • 32776 0x8008 1000 0000 0000 1000 Have trigger pin DRS3-3路触发
  • 32772 0x8004 1000 0000 0000 0100 Have trigger pin DRS3-2路触发
  • 32770 0x8002 1000 0000 0000 0010 Have trigger pin DRS3-1路触发
  • 32769 0x8001 1000 0000 0000 0001 Have trigger pin DRS3-0路触发


对于兆讯安全模块,参考手册

低温触发条件 -30 ~ -45

高温触发条件 95 ~ 115

注意:其他状态兆讯和maxim 触发状态含义会稍有不同,参考#25455

转换方式

将错误码转成二进制,得到16bit长度,每一位对应的一个错误

其中第[0]bit,1表示已使能,0表示未使能。

                           if (bitString.toCharArray()[1] == '1') {
                                status = false;
                                out_result += "小电池触发";
                            }
                            if (bitString.toCharArray()[2] == '1') {
                                status = false;
                                out_result += "VGL电压峰值不稳触发";
                            }
                            if (bitString.toCharArray()[3] == '1') {
                                status = false;
                                out_result += "SHIELDF触发";
                            }
                            if (bitString.toCharArray()[4] == '1') {
                                status = false;
                                out_result += "VDD高压触发";
                            }
                            if (bitString.toCharArray()[5] == '1') {
                                status = false;
                                out_result += "VCORE高压触发";
                            }
                            if (bitString.toCharArray()[6] == '1') {
                                status = false;
                                out_result += "VCORE低压触发";
                            }
                            if (bitString.toCharArray()[7] == '1') {
                                status = false;
                                out_result += "VDD低压触发";
                            }
                            if (bitString.toCharArray()[8] == '1') {
                                status = false;
                                out_result += "VBAT高压触发";
                            }
                            if (bitString.toCharArray()[9] == '1') {
                                status = false;
                                out_result += "VBAT低压触发";
                            }
                            if (bitString.toCharArray()[10] == '1') {
                                status = false;
                                out_result += "高温触发";
                            }
                            if (bitString.toCharArray()[11] == '1') {
                                status = false;
                                out_result += "低温触发";
                            }
                            if (bitString.toCharArray()[12] == '1') {
                                status = false;
                                out_result += "3路触发 ";
                            }
                            if (bitString.toCharArray()[13] == '1') {
                                status = false;
                                out_result += "2路触发 ";
                            }
                            if (bitString.toCharArray()[14] == '1') {
                                status = false;
                                out_result += "1路触发 ";
                            }
                            if (bitString.toCharArray()[15] == '1') {
                                status = false;
                                out_result += "0路触发 ";
                            }

                            if (out_result.equals("")) {
                                if (bitString.toCharArray()[0] == '1') {
                                    status = true;
                                    out_result += "安全模块正常 ";
                                }
                                if (bitString.toCharArray()[0] == '0') {
                                    status = true;
                                    out_result += "安全模块未使能";
                                }
                            }