Просмотр исходного кода

add read detect state command

Signed-off-by: FuangCao <cavan.cao@foxmail.com>
FuangCao 5 лет назад
Родитель
Сommit
a80a39c0cc
3 измененных файлов с 11 добавлено и 6 удалено
  1. 4 0
      Application/app/protocol_old.c
  2. 1 0
      Application/app/protocol_old.h
  3. 6 6
      Application/bsp/gpio.h

+ 4 - 0
Application/app/protocol_old.c

@@ -106,7 +106,11 @@ static int get_response_data(uint8_t *data, uint8_t operate, uint8_t result){
 			data[head->size ++] = measure_value()->pack_temp[i];
 		}
 		data[head->size ++] = (ml5238_is_charging() << 0) | (ml5238_is_discharging() << 1);
+	}else if (operate == OP_READ_DETECT){
+		data[head->size++] = IS_HALL1_DETECTED() | IS_HALL2_DETECTED() << 1 | IS_CHARGER_IN() << 2;
+		data[head->size++] = IS_DCDC_POWER_GOOD() | AUX_VOL_IS_OPEN() << 1 | IS_AUX_VOL_LOCKED() << 2;
 	}
+
 	head->checksum = _checksum(data, head->size);
 
 	return head->size;

+ 1 - 0
Application/app/protocol_old.h

@@ -66,6 +66,7 @@ enum
 	OP_OPEN_FET = 0x0B,
 
 	OP_CLEAR_PAIR = OP_TEMP_OTHER + 1,
+	OP_READ_DETECT = 0x0D,
 	OP_UPDATE_SOFTWARE_REQ = 0x0E,
 	OP_UPDATE_SOFTWARE = 0x0F,
 	

+ 6 - 6
Application/bsp/gpio.h

@@ -10,15 +10,15 @@ void gpio_init(void);
 #define TEMP_OPEN(x) gpio_bit_write(GPIOF,GPIO_PIN_1,(bit_status)(x))
 /*switch for small current aux */
 #define AUX_VOL_OPEN(x) gpio_bit_write(GPIOB,GPIO_PIN_2,(bit_status)(x))
-#define AUX_VOL_IS_OPEN() !!gpio_output_bit_get(GPIOB, GPIO_PIN_2)
+#define AUX_VOL_IS_OPEN() (!!gpio_output_bit_get(GPIOB, GPIO_PIN_2))
 /*aux pwr is locked */
-#define IS_AUX_VOL_LOCKED() !gpio_input_bit_get(GPIOB, GPIO_PIN_11)
+#define IS_AUX_VOL_LOCKED() (!gpio_input_bit_get(GPIOB, GPIO_PIN_11))
 /*switch for larger current DCDC  */
 #define DCDC_VOL_OPEN(x) gpio_bit_write(GPIOA,GPIO_PIN_11,(bit_status)(x))
 /* DCDC output power good detect */
 #define IS_DCDC_POWER_GOOD() (gpio_input_bit_get(GPIOF, GPIO_PIN_7) == RESET)
 /*detect for charger in/out */
-#define IS_CHARGER_IN() !gpio_input_bit_get(GPIOB,GPIO_PIN_10)
+#define IS_CHARGER_IN() (!gpio_input_bit_get(GPIOB,GPIO_PIN_10))
 /*spi chip select for ml5238*/
 #define ml5238_cs(x) gpio_bit_write(GPIOA, GPIO_PIN_15, (bit_status)x)
 
@@ -37,8 +37,8 @@ void gpio_init(void);
 #define UART1_IR_EN(x) gpio_bit_write(GPIOF,GPIO_PIN_0,(bit_status)(x))
 
 /*detect hall 1&2 */
-#define IS_HALL1_DETECTED() !gpio_input_bit_get(GPIOC, GPIO_PIN_15)
-#define IS_HALL2_DETECTED() !gpio_input_bit_get(GPIOC, GPIO_PIN_13)
+#define IS_HALL1_DETECTED() (!gpio_input_bit_get(GPIOC, GPIO_PIN_15))
+#define IS_HALL2_DETECTED() (!gpio_input_bit_get(GPIOC, GPIO_PIN_13))
 
 #define LED0_ON(x) {}
 #define LED1_ON(x) {}
@@ -51,7 +51,7 @@ void gpio_init(void);
 /*power switch for cs110, low active */
 #define CS1180_PWR_ENABLE(x) gpio_bit_write(GPIOC,GPIO_PIN_15, x==1?RESET:SET)
 /*detect for CS1180 is ready */
-#define IS_CS1180_NOT_READY() !!gpio_input_bit_get(GPIOB, GPIO_PIN_12)
+#define IS_CS1180_NOT_READY() (!!gpio_input_bit_get(GPIOB, GPIO_PIN_12))
 /*spi chip select for cs1180*/
 #define cs1180_cs(x) gpio_bit_write(GPIOA, GPIO_PIN_8, (bit_status)x)