Commit e6e9ee2e authored by 957dd's avatar 957dd

Merge branch 'feature/car-bug' into 'master'

减少部分bug See merge request !121
parents 7bd36caf 34675409
......@@ -7,6 +7,7 @@ Deviceld.txt
build/*
build/.ninja_*
build/Testing/
build-debug/
# 仅保留主程序二进制
!build/main
......
#define PROJECT_VERSION_MAJOR 1
#define PROJECT_VERSION_MINOR 3
#define PROJECT_VERSION_PATCH 11
#define GIT_HASH ""
#define BUILD_TIMESTAMP ""
#define BUILD_USER ""
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: mosquitto
Description: mosquitto MQTT library (C bindings)
Version: 2.0.22
Cflags: -I${includedir}
Libs: -L${libdir} -lmosquitto
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: mosquittopp
Description: mosquitto MQTT library (C++ bindings)
Version: 2.0.22
Cflags: -I${includedir}
Libs: -L${libdir} -lmosquittopp
No preview for this file type
......@@ -15,6 +15,33 @@ static const gpiocontrol_t *s_gpio_control_config = NULL ;//gpio结构体标识
ThreadPool_t *g_pool_device_gpio_control_t;//gpio限位线程池标识,只在特地设备中打开
/* 校验 pin 是否在已初始化列表内;pin==0 为 App 松开占位,非真实引脚 */
static int device_gpio_pin_allowed(int pin)
{
if (pin == 0) {
return 0;
}
for (int i = 0; i < g_gpiocount; i++) {
if (pin == g_gpiowpi[i]) {
return 1;
}
}
return 0;
}
static int device_gpio_pwm_allowed(int pin)
{
if (pin == 0) {
return 0;
}
for (int i = 0; i < g_gpio_softpwmcount; i++) {
if (pin == g_gpioPwm[i]) {
return 1;
}
}
return 0;
}
void public_pin_value(int pin,int value);
void tank0204_pin_value(int pin,int value);
void car0102_pin_value(int pin,int value);
......@@ -376,13 +403,9 @@ void device_gpio_control(int device_id,int pin,int val) {
}
void public_pin_value(int pin,int value) { //引脚控制
for(int i = 0 ; i <= g_gpiocount ; i++) {
if(pin == g_gpiowpi[i]) {
break;
}if(i == g_gpiocount) {
return ;
}
}
if (!device_gpio_pin_allowed(pin)) {
return;
}
if(value==1) {
digitalWrite(pin, HIGH);
my_zlog_info("pin:%d,%d",pin,HIGH);
......@@ -394,13 +417,9 @@ void public_pin_value(int pin,int value) { //引脚控制
}
void tank0204_pin_value(int pin,int value) { //tank0204引脚控制
for(int i = 0 ; i <= g_gpiocount ; i++) {
if(pin == g_gpiowpi[i]) {
break;
}if(i == g_gpiocount) {
return ;
}
}
if (!device_gpio_pin_allowed(pin)) {
return;
}
if(value==1) {
digitalWrite(pin, HIGH);
......@@ -423,13 +442,9 @@ void tank0204_pin_value(int pin,int value) { //tank0204引脚控制
* @brief 小车pin控制
*/
void car0102_pin_value(int pin,int value) { //引脚控制
for(int i = 0 ; i <= g_gpiocount ; i++) {
if(pin == g_gpiowpi[i]) {
break;
}if(i == g_gpiocount) {
return ;
}
}
if (!device_gpio_pin_allowed(pin)) {
return;
}
if(value==1) {
digitalWrite(pin, HIGH);
if(pin==26){
......@@ -552,14 +567,9 @@ void ptz0401_pin_value(int pin,int value){
* @note 占空比来源于全局 g_shot_speed_value,按百分比换算为 0~100。
*/
void public_pwm_value(int pin ,int value){
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
int shot_speed = (int)(g_shot_speed_value*100);
if(value==1) {
......@@ -595,21 +605,19 @@ int devicegpio_pwmreuse(int pin,int value,int val){
}
void tank0202_pwm_value(int pin,int value) { //软件陪我们控制调速
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
softPwmWrite(26, 0);
device_shoting_check(27,30);
} else {
softPwmWrite(pin, 30);
devicegpio_pwmreuse(pin,value,30);
if(pin != 26 || s_device_shot_t.state != TANK_STATE_SHOOTING) {
softPwmWrite(pin, 30);
devicegpio_pwmreuse(pin,value,30);
}
my_zlog_info("pwm:%d",pin);
}
if(s_limit_status==LIMIT_LIFT) {
......@@ -624,28 +632,28 @@ void tank0202_pwm_value(int pin,int value) { //软件陪我们控制调速
}else if(value==0) {
softPwmWrite(pin, 0);
devicegpio_pwmreuse(pin,value,0);
if(pin != 26 || s_device_shot_t.state != TANK_STATE_SHOOTING) {
devicegpio_pwmreuse(pin,value,0);
}
my_zlog_info("pwm:%d,0",pin);
}
my_zlog_info("tank0202 pwm");
}
void tank0203_pwm_value(int pin,int value) { //软件陪我们控制调速
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
softPwmWrite(26, 0);
device_shoting_check(27,30);
} else {
softPwmWrite(pin, 30);
devicegpio_pwmreuse(pin,value,30);
if(pin != 26 || s_device_shot_t.state != TANK_STATE_SHOOTING) {
softPwmWrite(pin, 30);
devicegpio_pwmreuse(pin,value,30);
}
my_zlog_info("pwm:%d",pin);
}
if(s_limit_status==LIMIT_LIFT) {
......@@ -661,26 +669,24 @@ void tank0203_pwm_value(int pin,int value) { //软件陪我们控制调速
}else if(value==0) {
softPwmWrite(pin, 0);
devicegpio_pwmreuse(pin,value,0);
if(pin != 26 || s_device_shot_t.state != TANK_STATE_SHOOTING) {
devicegpio_pwmreuse(pin,value,0);
}
my_zlog_info("pwm:%d,0",pin);
}
my_zlog_info("tank0203 pwm");
}
void tank0204_pwm_value(int pin,int value){
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
//device_shoting_check(27,100);
if(getshot_detection_index()==true){
softPwmWrite(26, 0);
softPwmWrite(27, 100);
setshot_detection_index(false);
tankshot_detection_backcount(NULL,3);
......@@ -722,9 +728,11 @@ void tank0204_pwm_value(int pin,int value){
my_zlog_info("pwm:5,0",pin);
}else{
if(pin!=27) {
if(pin==26&&get_backshotstatus()!=true){
if(pin==26){
softPwmWrite(pin, 0);
devicegpio_pwmreuse(pin,value,0);
if(get_backshotstatus()!=true){
devicegpio_pwmreuse(pin,value,0);
}
}
if(pin!=26)softPwmWrite(pin, 0);
my_zlog_info("pwm:%d,0",pin);
......@@ -735,14 +743,9 @@ void tank0204_pwm_value(int pin,int value){
}
void tank0206_pwm_value(int pin,int value) { //软件陪我们控制调速
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
......@@ -761,14 +764,9 @@ void tank0206_pwm_value(int pin,int value) { //软件陪我们控制调速
}
void tank0207_pwm_value(int pin,int value) { //软件陪我们控制调速
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
......@@ -787,14 +785,9 @@ void tank0207_pwm_value(int pin,int value) { //软件陪我们控制调速
}
void ship0301_pwm_value(int pin,int value) { //软件陪我们控制调速
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
......@@ -813,14 +806,9 @@ void ship0301_pwm_value(int pin,int value) { //软件陪我们控制调速
}
void ship0302_pwm_value(int pin,int value) { // 与 ship0301 引脚/软 PWM 行为一致
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
......@@ -840,14 +828,9 @@ void ship0302_pwm_value(int pin,int value) { // 与 ship0301 引脚/软 PWM 行
void dog0501_pwm_value(int pin,int value) { //软件陪我们控制调速
for(int i = 0 ; i <= g_gpio_softpwmcount ; i++) {
if(pin == g_gpioPwm[i]) {
break;
}
if(i == g_gpio_softpwmcount) {
return ;
}
}
if (!device_gpio_pwm_allowed(pin)) {
return;
}
if(value==1) {
if(pin == 27){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment