-
Notifications
You must be signed in to change notification settings - Fork 0
/
alarm.h
117 lines (108 loc) · 3.23 KB
/
alarm.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*********************************************************************
* Filename: alarm.h
*
*
* Author: Bright Pan <[email protected]>
* Created at: 2013-05-02 14:20:45
*
*
* Change Log:
*
* Copyright (C) 2013 Yuettak Co.,Ltd
********************************************************************/
#ifndef _ALARM_H_
#define _ALARM_H_
#include <rtthread.h>
#include <rthw.h>
#include <rtdevice.h>
#include <time.h>
#define ALARM_MAIL_MAX_MSGS 20
#define ALARM_INTERVAL 10
#define MACHINE_ON_WORK (0X01<<0)
/*
* alarm type and items
*
*/
typedef enum
{
ALARM_TYPE_LOCK_SHELL,// lock shell alarm type
ALARM_TYPE_LOCK_TEMPERATURE,// lock temperatrue
ALARM_TYPE_GATE_TEMPERATURE,// lock temperatrue
ALARM_TYPE_LOCK_GATE,// lock gate status
ALARM_TYPE_GSM_RING,// lock gate status
ALARM_TYPE_RFID_KEY_DETECT,// rfid key detect alarm type
ALARM_TYPE_CAMERA_PHOTOSENSOR, // camera photo sensor
ALARM_TYPE_CAMERA_IRDASENSOR, // camera irda sensor
ALARM_TYPE_MOTOR_STATUS, // motor status sensor
ALARM_TYPE_BATTERY_WORKING_20M,
ALARM_TYPE_BATTERY_REMAIN_50P,
ALARM_TYPE_BATTERY_REMAIN_20P,
ALARM_TYPE_BATTERY_REMAIN_5P,
ALARM_TYPE_BATTERY_SWITCH,
ALARM_TYPE_RFID_KEY_ERROR,// rfid key detect error alarm type 14
ALARM_TYPE_RFID_KEY_SUCCESS,// rfid key detect success alarm type
ALARM_TYPE_RFID_KEY_PLUGIN,// rfid key detect plugin alarm type
ALARM_TYPE_RFID_FAULT,
ALARM_TYPE_CAMERA_FAULT,
ALARM_TYPE_MOTOR_FAULT,
ALARM_TYPE_POWER_FAULT,
ALARM_TYPE_GPRS_AUTH,
ALARM_TYPE_GPRS_HEART,
ALARM_TYPE_GPRS_LIST_TELEPHONE,
ALARM_TYPE_GPRS_LIST_RFID_KEY,
ALARM_TYPE_GPRS_SET_TELEPHONE_SUCCESS,
ALARM_TYPE_GPRS_SET_TELEPHONE_FAILURE,
ALARM_TYPE_GPRS_SET_RFID_KEY_SUCCESS,
ALARM_TYPE_GPRS_SET_RFID_KEY_FAILURE,
ALARM_TYPE_GPRS_LIST_USER_PARAMETERS,
ALARM_TYPE_GPRS_SET_USER_PARAMETERS_SUCCESS,
ALARM_TYPE_GPRS_SET_USER_PARAMETERS_FAILURE,//31
ALARM_TYPE_GPRS_SET_TIME_SUCCESS,
ALARM_TYPE_GPRS_SET_TIME_FAILURE,
ALARM_TYPE_GPRS_SET_KEY0_SUCCESS,
ALARM_TYPE_GPRS_SET_KEY0_FAILURE,
ALARM_TYPE_GPRS_SET_HTTP_SUCCESS,
ALARM_TYPE_GPRS_SET_HTTP_FAILURE,
ALARM_TYPE_GPRS_UPLOAD_PIC,
ALARM_TYPE_GPRS_SEND_PIC_DATA,
ALARM_TYPE_GPRS_SLEEP,
ALARM_TYPE_GPRS_WAKE_UP
}ALARM_TYPEDEF;
/*
*
* alarm process flag type and items
*/
typedef enum
{
ALARM_PROCESS_FLAG_SMS = 0x01,// sms process
ALARM_PROCESS_FLAG_GPRS = 0x02,// gprs process
ALARM_PROCESS_FLAG_LOCAL = 0x04,// local process
ALARM_PROCESS_FLAG_MMS = 0x08,// local process
}ALARM_PROCESS_FLAG_TYPEDEF;
/*
* alarm mail type
* --time: occured time
* --alarm_type: alarm event type
* --alarm_process_flag: howto process alarm mail
*/
typedef struct
{
time_t time;
ALARM_TYPEDEF alarm_type;
ALARM_PROCESS_FLAG_TYPEDEF alarm_process_flag;
rt_int8_t gpio_value;
}ALARM_MAIL_TYPEDEF;
/*
* alarm msg queue
*/
extern rt_mq_t alarm_mq;
extern const char *alarm_help_map[];
extern rt_event_t machine_work_status;
/*
* alarm mail process function
*
*/
void alarm_mail_process_thread_entry(void *parameter);
void send_alarm_mail(ALARM_TYPEDEF alarm_type, ALARM_PROCESS_FLAG_TYPEDEF alarm_process_flag, rt_int8_t gpio_value, time_t time);
rt_err_t machine_status_deal(rt_uint8_t operate,rt_uint8_t option,rt_uint32_t wait_time);
#endif