#define SYSTEM_PRTCT_NOERR 0

#define SYSTEM_PRTCT_COVER (1 << 0) /* */
#define SYSTEM_PRTCT_LPHOT (1 << 1) /* */
#define SYSTEM_PRTCT_DCHOT (1 << 2)
#define SYSTEM_PRTCT_FANDET (1 << 3) /* */
#define SYSTEM_PRTCT_DMDFANDET (1 << 4)
#define SYSTEM_PRTCT_FAN2DET (1 << 4)
#define SYSTEM_PRTCT_PWSTATUS (1 << 5) /* */
#define SYSTEM_PRTCT_LAMPFLG (1 << 6) /* */
#define SYSTEM_PRTCT_LAMPOVER (1 << 7)
#define SYSTEM_PRTCT_LAMPPRTCT (1 << 8)

enum {
COVER = 0, // E1-1 僇僶乕奐曻
HOT, // E2-1 壏搙堎忢(僶僀儊僞儖)
TEMP, // E2-2 壏搙堎忢(壏搙僙儞僒)
POWER, // E3-2 揹尮堎忢
FAN, // E4-1 僼傽儞堎忢
#if defined(CONFIG_LIGHTSOURCE_LASER)
LDDRV, // E6-1 LD僪儔僀僶堎忢
PHOSPHOR, // E6-2 Phosphor堎忢
SSLCPU, // E9-3 SlaveCPU偲偺捠怣僄儔乕
#else
LAMP, /* 儔儞僾晄揰摂 */
USAGE, /* 愊嶼帪娫挻夁 */
DATA, /* LampData堎忢 */
IRIS, /* 傾僀儕僗堎忢 */ //傾僀儕僗堎忢僄儔乕捛壛
#endif
ERRNUM
};

static BOOL is_error(int);
#if 0 /* 枹巊梡 */
static BOOL is_warning(int);
#endif
static int chk_cover(void);
static int chk_hot(void);
static int chk_temp(void);
static int chk_fan(void);
static int chk_lamp(void);
static int chk_usage(void);
static int chk_data(void);
static int chk_power(void);
static int chk_iris(void); //傾僀儕僗堎忢僄儔乕捛壛
static int chk_lvd(void); // E3-2 揹尮偺掅揹埑僄儔乕
static int chk_lddrv(void); // E6-1 LD僪儔僀僶堎忢
static int chk_phosphor(void); // E6-2 Phosphor堎忢
static int chk_sslcpu(void); // E9-3 SlaveCPU偲偺捠怣僄儔乕

static void sysvalue_update(void);

static void protect_periodic(void);
static void protect_timer(void *tmp);
#if defined(CONFIG_LIGHTSOURCE_LASER)
static WORD get_ssl_fun_info(void);
#endif //(CONFIG_LIGHTSOURCE_LASER)

/* 撪晹曄悢 */
typedef struct {
int index; /* 僄儔乕ID */
int (*pfunc)(void); /* 僄儔乕専弌娭悢 */
DWORD errflag; /* 僄儔乕僼儔僌 */
BYTE statusdisp; /* 僄儔乕儘僌偺昞帵僷僞乕儞 */
} t_protect;

static t_protect protect_tbl[ERRNUM] =
{
{ COVER, chk_cover, SYSTEM_PRTCT_COVER, STS_DISP_11 }, // E1-1 僇僶乕奐曻
{ HOT, chk_hot, SYSTEM_PRTCT_LPHOT, STS_DISP_21 }, // E2-1 壏搙堎忢(僶僀儊僞儖)
{ TEMP, chk_temp, SYSTEM_PRTCT_THHOT, STS_DISP_22 }, // E2-2 壏搙堎忢(壏搙僙儞僒)
#if defined(CONFIG_LIGHTSOURCE_LASER)
{ POWER, chk_lvd, SYSTEM_PRTCT_PWSTATUS, STS_DISP_32 }, // E3-2 揹尮堎忢
{ FAN, chk_fan, SYSTEM_PRTCT_FAN2DET, STS_DISP_41 }, // E4-1 僼傽儞堎忢
{ LDDRV, chk_lddrv, SYSTEM_PRTCT_LDDRV, STS_DISP_61 }, // E6-1 LD僪儔僀僶堎忢
{ PHOSPHOR, chk_phosphor, SYSTEM_PRTCT_PHOSPHOR, STS_DISP_62 }, // E6-2 Phosphor堎忢
{ SSLCPU, chk_sslcpu, SYSTEM_PRTCT_SSLCPU, STS_DISP_93 }, // E9-3 SlaveCPU偲偺捠怣僄儔乕
#else
{ POWER, chk_power, SYSTEM_PRTCT_PWSTATUS, STS_DISP_31 }, /* E3-1 揹尮堎忢僄儔乕捛壛 */
{ FAN, chk_fan, SYSTEM_PRTCT_FAN2DET, STS_DISP_41 }, /* E4-1 僼傽儞掆巭 */
{ LAMP, chk_lamp, SYSTEM_PRTCT_LAMPFLG, STS_DISP_61 }, /* E6-1 儔儞僾晄揰摂 */
{ USAGE, chk_usage, SYSTEM_PRTCT_LAMPOVER, STS_DISP_00 }, /* E? 儔儞僾帪娫挻夁 */
{ DATA, chk_data, SYSTEM_PRTCT_DATAERR, STS_DISP_00 }, /* E? LampData堎忢 */
{ IRIS, chk_iris, SYSTEM_PRTCT_IRIS, STS_DISP_91 }, /* E9-1 傾僀儕僗堎忢 */
#endif
};

static BOOL is_error(int num)
{
  BYTE state = protect_tbl[num].pfunc();
  return (state == ERROR) ? TRUE : FALSE;
}

error check的更多相关文章

  1. java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

    Caused by: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Except ...

  2. AAPT2 error: check logs for details 问题的终究修复

    AAPT2 error: check logs for details Process 'command '***\build-tools\27.0.3\aapt.exe'' finished wit ...

  3. Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

    环境 Android Studio 3.0 升级&导入项目 错误 Error:java.util.concurrent.ExecutionException: com.android.tool ...

  4. com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

    1.错误显示 com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details log提示:Generate Si ...

  5. Android项目打包遇com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

    查了网上很多处理都是在项目的gradle.properties中添加下面的配置,再编译就通过了: android.enableAapt2=false

  6. android ------ AAPT2 error: check logs for details解决方法

    AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具.它的作用是将所有资源文件压缩打包到Android ...

  7. AS项目报错 Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

    1 修改gradle的缓存目录 这个可以通过android studio的设置中找到gradle,配置另一个非中文目录来缓存. File -> Settings -> Build, Exe ...

  8. 4.Android 打包时出现的Android Export aborted because fatal error were founds [closed]

    Android 程序开发完成后,如果要发布到互联网上供别人使用,就需要将自己的程序打包成Android 安装包文件(Android Package,APK),其扩展名为.apk.使用run as 也能 ...

  9. System Error Codes

    很明显,以下的文字来自微软MSDN 链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx M ...

  10. Android Volley gives me 400 error

    本文来自:http://stackoverflow.com/questions/21739276/android-volley-gives-me-400-error 本人是根据文中的其中一方法: I ...

随机推荐

  1. Mule获取Http参数

  2. fatal error: openssl/ssl.h: No such file or director

    $ sudo apt-get install libssl-dev

  3. protobuf遇坑总结

    在一个vs2013解决方案下创建了三个工程文件,在其中一个工程(Foundation)中放有CtrlMessage.pb.h和ControlMessageTags的头文件.编译后出错总共68处. 错误 ...

  4. 样本方差S²中为什么是乘以1/(n-1)或者说除以n-1?贝塞尔校正,无偏估计

    样本方差S²中为什么是乘以1/(n-1)或者说除以n-1?贝塞尔校正,无偏估计 前言:重在记录,可能出错. 先看样本方差的公式如下: S2=1n-1∑i=1n(Xi-X¯)2=1n-1(∑i=1nXi ...

  5. 7. C语言科学计数法表示int

    c语言10的n次方写用e表示: 比如int a=10e2 表示10*10的2次方=1000: 注意:10e6, 代表10*10^6 不代表10^6. 10^6为1^6

  6. WPF侧边导航栏实现

    一.先看效果 1 添加Nuget库 站长使用.Net Core 3.1创建的WPF工程,创建"DropDownMenu"解决方案后,需要添加两个Nuget库:MaterialDes ...

  7. Java流程控制之用户交互Scanner

    Scanner对象 java.util.Scanner是Java5的新特征,可以通过Scanner类来获取用户的输入 #基本语法# Scanner s = new Scanner(System.in) ...

  8. Windows右键新建.md文件

    原本创建.md文件的时候需要打开MarkDown编辑器,或者新建一个.txt文件然后修改后缀名,着实有点麻烦,本文介绍了如何在Windows操作系统中添加右键创建.md文件的方法. 环境 window ...

  9. 2022-3-24内部群每日三题-清辉PMP

    1.敏捷团队成员认为每日站会并不会增加价值,是因为小组规模太大.在回顾会议上,他们提出将现有的项目团队分解成更小的小组.Scrum主管应该怎么做? A.缩小团队规模,使站会更易于管理. B.在采取行动 ...

  10. 三种将list转换为map的方法

    1) 传统方法假设有某个类如下 Java代码 class Movie { private Integer rank; private String description; public Movie( ...