/* Copyright Statement: * * This software/firmware and related documentation ("AutoChips Software") are * protected under relevant copyright laws. The information contained herein is * confidential and proprietary to AutoChips Inc. and/or its licensors. Without * the prior written permission of AutoChips inc. and/or its licensors, any * reproduction, modification, use or disclosure of AutoChips Software, and * information contained herein, in whole or in part, shall be strictly * prohibited. * * AutoChips Inc. (C) 2016. All rights reserved. * * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("AUTOCHIPS SOFTWARE") * RECEIVED FROM AUTOCHIPS AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER * ON AN "AS-IS" BASIS ONLY. AUTOCHIPS EXPRESSLY DISCLAIMS ANY AND ALL * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR * NONINFRINGEMENT. NEITHER DOES AUTOCHIPS PROVIDE ANY WARRANTY WHATSOEVER WITH * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, * INCORPORATED IN, OR SUPPLIED WITH THE AUTOCHIPS SOFTWARE, AND RECEIVER AGREES * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN AUTOCHIPS * SOFTWARE. AUTOCHIPS SHALL ALSO NOT BE RESPONSIBLE FOR ANY AUTOCHIPS SOFTWARE * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND AUTOCHIPS'S * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE AUTOCHIPS SOFTWARE * RELEASED HEREUNDER WILL BE, AT AUTOCHIPS'S OPTION, TO REVISE OR REPLACE THE * AUTOCHIPS SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE * CHARGE PAID BY RECEIVER TO AUTOCHIPS FOR SUCH AUTOCHIPS SOFTWARE AT ISSUE. */ #ifndef PROCESS_H #define PROCESS_H #ifdef __cplusplus extern "C" { #endif /*****************************/ #include "ac7840x.h" /******************************/ extern uint8_t g_bvopen; // 0: close , 1: open extern uint8_t g_vo_delay; extern uint8_t g_voiceid; extern uint8_t g_autocalibration; extern uint16_t g_samplecount; extern uint8_t g_send_raw; extern uint8_t g_send_filtered; extern uint32_t g_send_sequence; #define BLINK_LED_MINT (30) /*闪烁LED灯最小时间间隔*/ #define BLINK_LED_MAXT (500) /*闪烁LED灯最大时间间隔*/ #define BLINK_LED_DFTT (100) /*闪烁LED默认时间间隔*/ #define VO_COUNT_DFTT (50) /*闪烁LED默认时间间隔*/ #define CLOSEVALVE_DELAY (200) // 打开电磁阀,泄气2秒钟 #define CLOSEVALVE_INTERVAL (100) /*触发关阀间隔*/ #define CLOSEVALVE_MAXTIMES (3) /*最大关阀次数*/ #define ALG_None (0) #define ALG_Start (1) #define ALG_Calibrate (2) #define ALG_Detecting (3) #define ALG_Triggering (4) #define ALG_Finished (5) #define CALIBRATE_COUNT (3*100) //3秒钟 #define RUNDELAY_COUNT (5*60*100) //5分钟 #define FILTER_CNT (32) typedef struct { float x; float y; float z; }axis_info_t; typedef struct _filter_avg{ axis_info_t info[FILTER_CNT]; uint8_t count; }filter_avg_t; #define DETECT_CNT (400) // 4s #define KEEP_CNT (80) #define DETECT_THRESHOLD (0.7) //m/s 2Km/h #define DETECT_THRESHOLD_DOWN (0.2) // 5Km/h #define MECHANICAL_NOISE_THRESHOLD (0.015) //g typedef struct _detect_info{ axis_info_t info[DETECT_CNT]; uint16_t count; }detect_info_t; #define ACC_DATASIZE (16) typedef struct { int16_t data[3][ACC_DATASIZE]; uint16_t write_index; uint16_t read_index; }circle_buffer; //算法三个加速度轴同时检测, 只要有一个轴的速度变化超进阈值,就触发动作。 typedef struct { uint8_t state; uint16_t valveclose_delay; //触发关阀持续时间 uint8_t valveclose_times; //触发关阀次数 uint8_t valveclose_interval; //触发关阀间隔 uint16_t calibrate_count; //uint8_t vo_alarm; /* 是否触发语音输出*/ //加速度零偏,主要是重力加速度在每个轴的分量 axis_info_t axis_offset; }ALG_CONTEXT; void Process_Init(void); void Process_RunLedPrd(void); void Process_Alg(void); void timer_callback(void); void sv_open(void); void sv_close(void); #ifdef __cplusplus } #endif #endif /* PROCESS_H */