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
f12cef22
Commit
f12cef22
authored
Jul 24, 2025
by
学习的菜鸟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重构基本完成,但是一些地方还需优化
parent
62ef36cf
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
77 additions
and
26 deletions
+77
-26
device_identity.c
app/device_identity/device_identity.c
+4
-10
main.c
app/main/main.c
+8
-0
main.h
app/main/main.h
+3
-0
main
build/main
+0
-0
devcontrol_common.c
drivers/devicecontrol/devcontrol_common.c
+23
-8
device_init.c
drivers/gpio/device_init.c
+2
-2
gpio_init.c
drivers/gpio/gpio_init.c
+4
-1
audioplay.c
drivers/sensors/audioplay.c
+17
-0
audioplay.h
drivers/sensors/audioplay.h
+3
-0
devcontrol_common.h
include/devcontrol_common.h
+4
-2
http_request.h
modules/http/http_request.h
+1
-1
mqtt_infor_handle.c
modules/mqtt/mqtt_infor_handle.c
+5
-0
mqtt_init.h
modules/mqtt/mqtt_init.h
+1
-0
mqtt_verify.h
modules/mqtt/mqtt_verify.h
+2
-2
No files found.
app/device_identity/device_identity.c
View file @
f12cef22
...
...
@@ -107,22 +107,16 @@ int device_judg(CodeEnum_t code,char *sub_str) {
device_init
(
DEVICE_CAR0102
);
my_zlog_info
(
"使用型号%s"
,
sub_str
);
}
else
if
(
code
==
CAR_0103
)
{
//car_Init_0103(
);
device_init
(
DEVICE_CAR0103
);
my_zlog_info
(
"使用型号%s"
,
sub_str
);
}
else
if
(
code
==
CAR_0104
)
{
//car_Init_0104();
my_zlog_info
(
"使用型号%s"
,
sub_str
);
}
else
if
(
code
==
TANK_0201
)
{
//tank_Init_0201();
device_init
(
DEVICE_CAR0104
);
my_zlog_info
(
"使用型号%s"
,
sub_str
);
}
else
if
(
code
==
TANK_0202
)
{
//tank_Init_0202();
my_zlog_info
(
"使用型号%s"
,
sub_str
);
}
else
if
(
code
==
SHIP_0301
)
{
//ship_Init_0301();
device_init
(
DEVICE_TANK0202
);
my_zlog_info
(
"使用型号%s"
,
sub_str
);
}
else
if
(
code
==
PAO_0401
)
{
//ptr_Init_0401(
);
device_init
(
DEVICE_PAO_PTZ0401
);
my_zlog_info
(
"使用型号%s"
,
sub_str
);
}
else
{
my_zlog_error
(
"没有找到设备号,尝试启用备用mqtt,topic进行改名"
);
...
...
app/main/main.c
View file @
f12cef22
...
...
@@ -34,7 +34,15 @@ int main(){
my_zlog_warn
(
"此版本电压没有使用INA226"
);
}
if
(
audio_init
()
!=
0
){
my_zlog_warn
(
"audio初始化有问题"
);
}
int
thread_rc
=
thread_start_init
(
thread_exit_time
,
thread_mqtt_beat
,
thread_open_browser
,
thread_mqtt_reconnect
,
thread_time_calculation
,
thread_play_mp3
);
if
(
thread_rc
!=
0
){
my_zlog_warn
(
"多线程初始化失败"
);
return
-
7
;
}
thread_end_close
();
device_end_close
(
g_device_type
);
...
...
app/main/main.h
View file @
f12cef22
...
...
@@ -20,6 +20,9 @@ int mylog_init();
/*wiringPi初始化函数*/
int
wiringPiSetup
();
/*音频初始化函数*/
int
audio_init
();
int
softiic_init
();
/*mqtt的topic初始化*/
...
...
build/main
View file @
f12cef22
No preview for this file type
drivers/devicecontrol/devcontrol_common.c
View file @
f12cef22
#include "devcontrol_common.h"
#include "gpio_init.h"
const
device_didrive
device_didrive_control_config_t
[]
=
{
{
...
...
@@ -32,28 +33,40 @@ const device_didrive device_didrive_control_config_t[]={
const
device_abnormal_close_t
devcontrol_config_t
[]
=
{
{
.
device_id
=
DEVICE_CAR0101
,
.
device_abnormal_stop
=
car0101_middle_pwm
.
device_abnormal_stop
=
car0101_middle_pwm
,
.
gpio_pin_pulled
=
pin_all_default
,
.
gpio_pwm_pulled
=
pwm_all_default
},
{
.
device_id
=
DEVICE_CAR0102
,
.
device_abnormal_stop
=
car0102_speed_stop
.
device_abnormal_stop
=
car0102_speed_stop
,
.
gpio_pin_pulled
=
pin_all_default
,
.
gpio_pwm_pulled
=
pwm_all_default
},
{
.
device_id
=
DEVICE_CAR0103
,
.
device_abnormal_stop
=
car0103_middle
.
device_abnormal_stop
=
car0103_middle
,
.
gpio_pin_pulled
=
pin_all_default
,
.
gpio_pwm_pulled
=
pwm_all_default
},
{
.
device_id
=
DEVICE_CAR0104
,
.
device_abnormal_stop
=
car0104_stop
.
device_abnormal_stop
=
car0104_stop
,
.
gpio_pin_pulled
=
pin_all_default
,
.
gpio_pwm_pulled
=
pwm_all_default
},
{
.
device_id
=
DEVICE_TANK0202
,
.
device_abnormal_stop
=
tank0202_middle
,
.
device_close
=
tank0202_thread_close
.
device_close
=
tank0202_thread_close
,
.
gpio_pin_pulled
=
pin_all_default
,
.
gpio_pwm_pulled
=
pwm_all_default
},
{
.
device_id
=
DEVICE_PAO_PTZ0401
,
.
device_abnormal_stop
=
PTZ_pwm_init
.
device_abnormal_stop
=
PTZ_pwm_init
,
.
gpio_pin_pulled
=
pin_all_default
,
.
gpio_pwm_pulled
=
pwm_all_default
},
// 结束标记
{
.
device_id
=
-
1
}
...
...
@@ -75,7 +88,9 @@ void device_stop(int device_id) {
return
;
}
config
->
device_abnormal_stop
();
// 速度控制初始化
config
->
device_abnormal_stop
();
config
->
gpio_pin_pulled
();
config
->
gpio_pwm_pulled
();
}
...
...
@@ -95,7 +110,7 @@ void device_end_close(int device_id) {
return
;
}
config
->
device_close
();
// 速度控制初始化
config
->
device_close
();
}
...
...
drivers/gpio/device_init.c
View file @
f12cef22
...
...
@@ -12,8 +12,8 @@ const deviceconfig_t device_configs[] = {
{
.
device_id
=
DEVICE_CAR0101
,
.
device_name
=
"car0101"
,
.
gpio_pins
=
{
5
,
6
,
7
,
10
,
16
,
20
,
22
,
23
,
24
,
25
,
26
,
-
1
},
.
gpio_pwms
=
{
27
,
-
1
},
.
gpio_pins
=
{
5
,
6
,
7
,
10
,
16
,
20
,
22
,
23
,
24
,
25
,
26
,
27
,
-
1
},
.
gpio_pwms
=
{
-
1
},
.
device_pwm_init
=
physics_pwm_init
,
.
device_control_stop
=
car0101_middle_pwm
,
.
emergency_code
=
101
...
...
drivers/gpio/gpio_init.c
View file @
f12cef22
...
...
@@ -67,10 +67,13 @@ void pwm_value(int pin,int value) { //软件陪我们控制调速
if
(
value
==
1
)
{
if
(
pin
==
27
){
if
(
g_device_type
!=
DEVICE_TANK0202
){
softPwmWrite
(
pin
,
shot_speed
);
my_zlog_debug
(
"pin:%d,%d"
,
pin
,
shot_speed
);
}
if
(
g_device_type
==
DEVICE_TANK0202
)
softPwmWrite
(
pin
,
40
);
}
else
{
if
(
g_device_type
==
DEVICE_TANK0202
)
softPwmWrite
(
pin
,
30
);
if
(
g_device_type
==
DEVICE_TANK0202
)
softPwmWrite
(
pin
,
30
);
if
(
g_device_type
!=
DEVICE_TANK0202
)
softPwmWrite
(
pin
,
shot_speed
);
}
...
...
drivers/sensors/audioplay.c
View file @
f12cef22
...
...
@@ -104,3 +104,19 @@ void audioplay_cycle(){
}
}
int
audio_init
()
{
int
adino_jude
=
system
(
"pactl load-module module-alsa-source device=hw:2,0"
);
delay_s
(
3
);
int
adino_play_jude
=
system
(
"pactl load-module module-alsa-sink device=hw:2,0"
);
if
(
adino_jude
==
0
&&
adino_play_jude
==
0
)
{
my_zlog_debug
(
"命令执行成功!"
);
return
0
;
}
else
{
if
(
adino_jude
!=
0
)
my_zlog_warn
(
"麦命令执行失败,返回状态码: %d"
,
adino_jude
);
if
(
adino_play_jude
!=
0
)
my_zlog_warn
(
"喇叭命令执行失败,返回状态码: %d"
,
adino_play_jude
);
return
-
1
;
}
}
\ No newline at end of file
drivers/sensors/audioplay.h
View file @
f12cef22
...
...
@@ -6,4 +6,6 @@
void
audioplay_mqtt_receive
(
cJSON
*
body
);
//接收音频mqtt播放函数
void
audioplay_cycle
();
//音频播放线程中函数
int
audio_init
();
#endif
\ No newline at end of file
include/devcontrol_common.h
View file @
f12cef22
...
...
@@ -12,8 +12,10 @@
typedef
struct
{
int
device_id
;
// 设备ID (101, 102等)
void
(
*
device_abnormal_stop
)(
void
);
// PWM初始化函数指针
void
(
*
device_close
)(
void
);
// 速度控制函数指针
void
(
*
device_abnormal_stop
)(
void
);
// 车停止
void
(
*
gpio_pin_pulled
)(
void
);
void
(
*
gpio_pwm_pulled
)(
void
);
void
(
*
device_close
)(
void
);
// 关闭线程池等
}
device_abnormal_close_t
;
typedef
struct
{
...
...
modules/http/http_request.h
View file @
f12cef22
...
...
@@ -4,7 +4,7 @@
#include"common.h"// 用于存储HTTP响应数据的结构体
/*2为关闭请求,1为打开*/
#define HTTP_REQUEST_INDEX
2
#define HTTP_REQUEST_INDEX
1
struct
MemoryStruct
{
char
*
memory
;
...
...
modules/mqtt/mqtt_infor_handle.c
View file @
f12cef22
...
...
@@ -82,6 +82,7 @@ void heartbeat_send() {
//角度发送
void
angle_mqtt_send
()
{
static
int
angle_i
=
0
;
float
angle_shot
=
ads1115_read_channel
(
2
);
if
(
angle_shot
>
0
){
angle_shot
=
angle_shot
*
360
/
5
;
...
...
@@ -92,7 +93,11 @@ void angle_mqtt_send() {
cJSON_AddStringToObject
(
root
,
"type"
,
"tank_angle"
);
cJSON_AddNumberToObject
(
root
,
"angle"
,
rounded_angle
);
char
*
payload
=
cJSON_PrintUnformatted
(
root
);
angle_i
++
;
if
(
angle_i
>=
200
){
my_zlog_debug
(
"%s"
,
payload
);
angle_i
=
0
;
}
mosquitto_publish
(
mosq
,
NULL
,
TOPIC_send_angle
,
strlen
(
payload
),
payload
,
0
,
false
);
cJSON_Delete
(
root
);
// 释放 cJSON 对象
}
...
...
modules/mqtt/mqtt_init.h
View file @
f12cef22
...
...
@@ -6,6 +6,7 @@
//extern ThreadPool *pool;
/*2为国外1为国内*/
#define MQTT_IPMODE 1 // 或通过编译选项 -DMODE=1 指定
#if MQTT_IPMODE == 1
...
...
modules/mqtt/mqtt_verify.h
View file @
f12cef22
...
...
@@ -3,8 +3,8 @@
#include "cjson/cJSON.h"
/*
1为打开验证0
为关闭验证*/
#define VERIFIED_MODE
1
/*
TRUE为打开验证,FALSE
为关闭验证*/
#define VERIFIED_MODE
TRUE
#define AES_BLOCK_SIZE 16
...
...
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