Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
car-controlserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wenzhongjian
car-controlserver
Commits
f128bd38
Commit
f128bd38
authored
Jan 17, 2026
by
957dd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
加入了坦克激光控制。有人操控就亮激光
parent
845a4293
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
52 additions
and
6 deletions
+52
-6
pthread_open.c
app/main/pthread_open.c
+14
-0
main
build/main
+0
-0
devcontrol_common.c
drivers/devicecontrol/devcontrol_common.c
+1
-1
gpio_control.c
drivers/gpio/gpio_control.c
+28
-1
gpio_init.c
drivers/gpio/gpio_init.c
+7
-0
gpio_init.h
drivers/gpio/gpio_init.h
+2
-4
No files found.
app/main/pthread_open.c
View file @
f128bd38
...
@@ -52,6 +52,20 @@ void *thread_exit_time(void *arg)
...
@@ -52,6 +52,20 @@ void *thread_exit_time(void *arg)
delay_ms
(
100
);
delay_ms
(
100
);
pthread_mutex_lock
(
&
g_exit_count_mutex
);
pthread_mutex_lock
(
&
g_exit_count_mutex
);
g_devcontrol_exit_count
++
;
g_devcontrol_exit_count
++
;
if
(
g_device_type
==
DEVICE_TANK0204
){
static
int
s_tank0204_pinval_temporary_timecount
=
0
;
if
(
g_devcontrol_exit_count
<
2
)
{
s_tank0204_pinval_temporary_timecount
=
0
;
device_gpio_control
(
DEVICE_TANK0204
,
6
,
1
);
}
s_tank0204_pinval_temporary_timecount
++
;
if
(
s_tank0204_pinval_temporary_timecount
>
200
){
s_tank0204_pinval_temporary_timecount
=
201
;
device_gpio_control
(
DEVICE_TANK0204
,
6
,
0
);
}
}
if
(
g_devcontrol_exit_count
>=
5
)
if
(
g_devcontrol_exit_count
>=
5
)
{
{
device_stop
(
g_device_type
);
device_stop
(
g_device_type
);
...
...
build/main
View file @
f128bd38
No preview for this file type
drivers/devicecontrol/devcontrol_common.c
View file @
f128bd38
...
@@ -105,7 +105,7 @@ const device_abnormal_close_t devcontrol_config_t[]= {
...
@@ -105,7 +105,7 @@ const device_abnormal_close_t devcontrol_config_t[]= {
.
device_id
=
DEVICE_TANK0204
,
.
device_id
=
DEVICE_TANK0204
,
.
device_abnormal_stop
=
tank0204_stop
,
.
device_abnormal_stop
=
tank0204_stop
,
.
device_close
=
device_poilthread_close
,
.
device_close
=
device_poilthread_close
,
.
gpio_pin_pulled
=
pin_all_default
,
.
gpio_pin_pulled
=
tank0204_
pin_all_default
,
.
gpio_pwm_pulled
=
tankpwm_default
.
gpio_pwm_pulled
=
tankpwm_default
},
},
...
...
drivers/gpio/gpio_control.c
View file @
f128bd38
...
@@ -16,6 +16,7 @@ const gpiocontrol_t *gpio_control_config_t = NULL ;//gpio结构体标识
...
@@ -16,6 +16,7 @@ const gpiocontrol_t *gpio_control_config_t = NULL ;//gpio结构体标识
ThreadPool_t
*
g_pool_device_gpio_control_t
;
//gpio限位线程池标识,只在特地设备中打开
ThreadPool_t
*
g_pool_device_gpio_control_t
;
//gpio限位线程池标识,只在特地设备中打开
void
public_pin_value
(
int
pin
,
int
value
);
void
public_pin_value
(
int
pin
,
int
value
);
void
tank0204_pin_value
(
int
pin
,
int
value
);
void
car0102_pin_value
(
int
pin
,
int
value
);
void
car0102_pin_value
(
int
pin
,
int
value
);
void
car0103_pin_value
(
int
pin
,
int
value
);
void
car0103_pin_value
(
int
pin
,
int
value
);
void
car0104_pin_value
(
int
pin
,
int
value
);
void
car0104_pin_value
(
int
pin
,
int
value
);
...
@@ -253,7 +254,7 @@ const gpiocontrol_t gpio_configs[] = {
...
@@ -253,7 +254,7 @@ const gpiocontrol_t gpio_configs[] = {
{
{
.
device_id
=
DEVICE_TANK0204
,
.
device_id
=
DEVICE_TANK0204
,
.
category_id
=
MARINE_TANK
,
.
category_id
=
MARINE_TANK
,
.
device_pin_value
=
public
_pin_value
,
.
device_pin_value
=
tank0204
_pin_value
,
.
device_pwm_value
=
tank0204_pwm_value
,
.
device_pwm_value
=
tank0204_pwm_value
,
.
device_gpio_pthread_create
=
device_gpio_control_threadpoll_init
.
device_gpio_pthread_create
=
device_gpio_control_threadpoll_init
},
},
...
@@ -339,6 +340,32 @@ void public_pin_value(int pin,int value) { //引脚控制
...
@@ -339,6 +340,32 @@ 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
(
value
==
1
)
{
digitalWrite
(
pin
,
HIGH
);
}
else
if
(
value
==
0
)
{
digitalWrite
(
pin
,
LOW
);
}
if
(
pin
!=
6
)
my_zlog_info
(
"pin:%d,%d"
,
pin
,
value
);
else
{
static
int
s_i
=
0
;
s_i
++
;
if
(
s_i
>
10
)
{
my_zlog_info
(
"pin:%d,%d"
,
pin
,
value
);
s_i
=
0
;
}
}
}
/*
/*
* @brief 小车pin控制
* @brief 小车pin控制
*/
*/
...
...
drivers/gpio/gpio_init.c
View file @
f128bd38
...
@@ -66,6 +66,13 @@ void pin_all_default() {//全部至低电平,车和坦克共用
...
@@ -66,6 +66,13 @@ void pin_all_default() {//全部至低电平,车和坦克共用
}
}
}
}
void
tank0204_pin_all_default
()
{
//全部至低电平,坦克0204专用
for
(
int
i
=
0
;
i
<
g_gpiocount
;
i
++
)
{
if
(
g_gpiowpi
[
i
]
==
16
||
g_gpiowpi
[
i
]
==
6
)
continue
;
digitalWrite
(
g_gpiowpi
[
i
],
LOW
);
}
}
void
pwm_all_default
()
{
//全部至低电平,车和坦克共用
void
pwm_all_default
()
{
//全部至低电平,车和坦克共用
for
(
int
i
=
0
;
i
<
g_gpio_softpwmcount
;
i
++
)
{
for
(
int
i
=
0
;
i
<
g_gpio_softpwmcount
;
i
++
)
{
softPwmWrite
(
g_gpioPwm
[
i
],
0
);
softPwmWrite
(
g_gpioPwm
[
i
],
0
);
...
...
drivers/gpio/gpio_init.h
View file @
f128bd38
...
@@ -21,14 +21,12 @@ void init_gpiowpi(const int *values_pin);//gpio引脚初始化
...
@@ -21,14 +21,12 @@ void init_gpiowpi(const int *values_pin);//gpio引脚初始化
void
init_gpiopwm
(
const
int
*
values_pwm
);
void
init_gpiopwm
(
const
int
*
values_pwm
);
void
init_gpio_input
(
const
int
*
values_pwm
);
//gpio读取
void
init_gpio_input
(
const
int
*
values_pwm
);
//gpio读取
void
pin_value
(
int
pin
,
int
value
);
//控制引脚高低
// 定义 PWM 引脚的 WiringPi 编号
// 定义 PWM 引脚的 WiringPi 编号
void
pin_all_default
();
//拉低车的控制引脚
void
pin_all_default
();
//拉低车的控制引脚
void
tank0204_pin_all_default
();
//拉低坦克专用的控制引脚
void
pwm_all_default
();
//软件pwm置0引脚
void
pwm_all_default
();
//软件pwm置0引脚
void
pin_value
(
int
pin
,
int
value
);
void
physics_pwm_init
();
void
physics_pwm_init
();
void
pwm_value
(
int
pin
,
int
value
);
//软件陪我们控制调速
void
tankpwm_default
();
//坦克专用pwm置0引脚
void
tankpwm_default
();
//坦克专用pwm置0引脚
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment