60 lines
1.8 KiB
C
60 lines
1.8 KiB
C
|
|
#ifndef __FEED_SCALE_H
|
|||
|
|
#define __FEED_SCALE_H
|
|||
|
|
|
|||
|
|
#include "main.h"
|
|||
|
|
#include <stdint.h>
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD><EFBFBD>Ͷι<CDB6><CEB9><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>Χ: 0 ~ 500.0 KG, <20>ڲ<EFBFBD><DAB2><EFBFBD> 0.1 KG Ϊ<><CEAA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> */
|
|||
|
|
#define FEED_SCALE_ONCEWT_MIN 1 /* 0.1 KG */
|
|||
|
|
#define FEED_SCALE_ONCEWT_MAX 5000 /* 500.0 KG */
|
|||
|
|
#define FEED_SCALE_WEIGHT_MAX 5000 /* 500.0 KG */
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD> main.h <20><> PRODUCT_WITH_FEED_SCALE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>䡣
|
|||
|
|
* 1=<EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ)<EFBFBD><EFBFBD>feeding ָ<EFBFBD><EFBFBD>ֱ<EFBFBD>ӿ<EFBFBD><EFBFBD>Ƽ̵<EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD>
|
|||
|
|
* 0=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ϻ<EFBFBD><EFBFBD><EFBFBD>Ʒ)<EFBFBD><EFBFBD>ʹ<EFBFBD>ó<EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>Ͷι<EFBFBD><EFBFBD> */
|
|||
|
|
#define FEED_SCALE_DISABLED (!PRODUCT_WITH_FEED_SCALE)
|
|||
|
|
|
|||
|
|
/* Ͷι״̬ */
|
|||
|
|
typedef enum {
|
|||
|
|
FEED_IDLE = 0, /* <20><><EFBFBD><EFBFBD> */
|
|||
|
|
FEED_RUNNING, /* Ͷι<CDB6><CEB9>: <20>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ڶ<EFBFBD>485 */
|
|||
|
|
FEED_DONE, /* Ͷι<CDB6><CEB9><EFBFBD><EFBFBD> */
|
|||
|
|
FEED_ERROR /* <20>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD>(485ʧ<35><CAA7>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>) */
|
|||
|
|
} FeedScaleState;
|
|||
|
|
|
|||
|
|
/* ι<>ϳ<EFBFBD>ģ<EFBFBD><C4A3> API */
|
|||
|
|
void feedScaleInit(void);
|
|||
|
|
void feedScaleProcess(void);
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD><EFBFBD>/ֹͣͶι */
|
|||
|
|
void feedScaleStart(uint16_t once_wt_100g);
|
|||
|
|
void feedScaleStop(void);
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD><EFBFBD>/<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ͷι<CDB6><CEB9>(0.1KG <20><>λ)<29><><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><C3BA>־û<D6BE><C3BB><EFBFBD> EEPROM */
|
|||
|
|
void feedScaleSetOnceWeight(uint16_t once_wt_100g);
|
|||
|
|
uint16_t feedScaleGetOnceWeight(void);
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD>ó<EFBFBD>ȥƤ<C8A5><C6A4><EFBFBD><EFBFBD>(0.1KG <20><>λ)<29><><EFBFBD><EFBFBD><EFBFBD>־û<D6BE><C3BB><EFBFBD> EEPROM */
|
|||
|
|
void feedScaleSetZero(uint16_t zero_100g);
|
|||
|
|
|
|||
|
|
/* <20><>ȡ<EFBFBD><C8A1>ǰ/<2F><><EFBFBD><EFBFBD>һ<EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0.1KG <20><>λ) */
|
|||
|
|
uint16_t feedScaleGetWeight(void);
|
|||
|
|
|
|||
|
|
/* <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> 485 ԭʼë<CABC>أ<EFBFBD>δȥƤ<C8A5><C6A4>0.1KG <20><>λ<EFBFBD><CEBB> */
|
|||
|
|
uint16_t feedScaleGetRawWeight(void);
|
|||
|
|
|
|||
|
|
/* <20><>ȡ<EFBFBD><C8A1>ǰȥƤ<C8A5><C6A4><EFBFBD><EFBFBD>(0.1KG <20><>λ) */
|
|||
|
|
uint16_t feedScaleGetZero(void);
|
|||
|
|
|
|||
|
|
/* <20><>ȡͶι״̬ */
|
|||
|
|
FeedScaleState feedScaleGetState(void);
|
|||
|
|
|
|||
|
|
/* <20><>ȡ<EFBFBD>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0.1KG <20><>λ)<29><>Ͷι<CDB6><CEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч */
|
|||
|
|
uint16_t feedScaleGetReduced(void);
|
|||
|
|
|
|||
|
|
/* 485 <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> 30s, Ͷι<CDB6><CEB9> 1s */
|
|||
|
|
#define FEED_SCALE_QUERY_IDLE_MS 30000u
|
|||
|
|
#define FEED_SCALE_QUERY_RUN_MS 1000u
|
|||
|
|
|
|||
|
|
#endif /* __FEED_SCALE_H */
|