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
05c82e63
Commit
05c82e63
authored
Mar 17, 2025
by
957dd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新坦克的代码,坦克和车分离2个逻辑,使用第3和4位判断
parent
b0bd60e0
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
52 additions
and
36 deletions
+52
-36
mqtt.h
lib/mqtt.h
+1
-1
log.txt
log/log.txt
+1
-0
main
main
+0
-0
gpio_pwm.c
src/gpio_pwm.c
+6
-17
gpio_pwm.o
src/gpio_pwm.o
+0
-0
mqtt.c
src/mqtt.c
+3
-3
mqtt.o
src/mqtt.o
+0
-0
main.c
usr/main.c
+41
-15
main.o
usr/main.o
+0
-0
No files found.
lib/mqtt.h
View file @
05c82e63
...
@@ -20,7 +20,7 @@ extern int gPwmCount; // 计数
...
@@ -20,7 +20,7 @@ extern int gPwmCount; // 计数
extern
int
gmessage_type
;
extern
int
gmessage_type
;
extern
int
gmessage_
4
_index
;
extern
int
gmessage_
2
_index
;
int
mqtt_init
();
int
mqtt_init
();
void
mqtt_create
(
struct
mosquitto
*
mosq
);
void
mqtt_create
(
struct
mosquitto
*
mosq
);
...
...
log/log.txt
View file @
05c82e63
[10315:10353:0317/095131.251085:ERROR:ssl_client_socket_impl.cc(985)] handshake failed; returned -1, SSL error code 1, net_error -101
main
View file @
05c82e63
No preview for this file type
src/gpio_pwm.c
View file @
05c82e63
#include <wiringPi.h>
#include <wiringPi.h>
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include "gpio_pwm.h"
// 定义 PWM 引脚的 WiringPi 编号
// 定义 PWM 引脚的 WiringPi 编号
#define PWM_PIN_SPEED 21
#define PWM_PIN_SPEED 21
#define PWM_PIN_CHANGE 2
#define PWM_PIN_CHANGE 2
// 定义 PWM 频率为 50Hz
#define PWM_FREQ 50
// 定义占空比范围,这里设置为 0 到 1000
#define MAX_DUTY 1000
const
int
gpioWPi
[]
=
{
5
,
6
,
7
,
10
,
16
,
20
,
22
,
23
,
24
,
25
,
26
,
27
};
const
int
gpioWPi
[]
=
{
5
,
6
,
7
,
10
,
16
,
20
,
22
,
23
,
24
,
25
,
26
,
27
};
void
pin_init
()
//初始化引脚
void
pin_init
()
//初始化引脚
...
@@ -35,14 +31,7 @@ void pin_all_default()//全部至低电平
...
@@ -35,14 +31,7 @@ void pin_all_default()//全部至低电平
void
pin_value
(
int
pin
,
int
value
)
void
pin_value
(
int
pin
,
int
value
)
{
{
if
(
pin
==
2
){
pinMode
(
pin
,
OUTPUT
);
}
if
(
pin
==
21
){
pinMode
(
pin
,
OUTPUT
);
}
if
(
value
==
1
){
if
(
value
==
1
){
digitalWrite
(
pin
,
HIGH
);
digitalWrite
(
pin
,
HIGH
);
printf
(
"pin:%d,%d
\n
"
,
pin
,
HIGH
);
printf
(
"pin:%d,%d
\n
"
,
pin
,
HIGH
);
...
@@ -55,21 +44,21 @@ void pin_value(int pin,int value)
...
@@ -55,21 +44,21 @@ void pin_value(int pin,int value)
void
pwm_speed
()
{
void
pwm_speed
()
{
int
pwm_clock
=
24000000
/
(
PWM_FREQ
*
1000
);
int
pwm_clock
=
24000000
/
(
50
*
1000
);
// 定义 PWM 频率为 50Hz
pinMode
(
PWM_PIN_SPEED
,
PWM_OUTPUT
);
pinMode
(
PWM_PIN_SPEED
,
PWM_OUTPUT
);
pinMode
(
PWM_PIN_CHANGE
,
PWM_OUTPUT
);
pinMode
(
PWM_PIN_CHANGE
,
PWM_OUTPUT
);
pwmSetClock
(
PWM_PIN_SPEED
,
pwm_clock
);
//=19200*1000/(hz*2000)
pwmSetClock
(
PWM_PIN_SPEED
,
pwm_clock
);
//=19200*1000/(hz*2000)
pwmSetRange
(
PWM_PIN_SPEED
,
MAX_DUTY
);
pwmSetRange
(
PWM_PIN_SPEED
,
1000
);
//占空比范围
pwmSetClock
(
PWM_PIN_CHANGE
,
pwm_clock
);
//=19200*1000/(hz*2000)
pwmSetClock
(
PWM_PIN_CHANGE
,
pwm_clock
);
//=19200*1000/(hz*2000)
pwmSetRange
(
PWM_PIN_CHANGE
,
MAX_DUTY
);
pwmSetRange
(
PWM_PIN_CHANGE
,
1000
);
//占空比范围
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
}
}
void
midde_pwm
()
void
midde_pwm
()
//中间pwm值
{
{
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_SPEED
,
75
);
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
pwmWrite
(
PWM_PIN_CHANGE
,
70
);
...
...
src/gpio_pwm.o
View file @
05c82e63
No preview for this file type
src/mqtt.c
View file @
05c82e63
...
@@ -33,7 +33,7 @@ unsigned char gvalt[4];//存放mqtt接收的tpye,mode等
...
@@ -33,7 +33,7 @@ unsigned char gvalt[4];//存放mqtt接收的tpye,mode等
struct
mosquitto
*
mosq
;
struct
mosquitto
*
mosq
;
time_t
gStart
;
time_t
gStart
;
int
gmessage_
4
_index
=
0
;
int
gmessage_
2
_index
=
0
;
char
*
glat
=
NULL
;
//加入gps后删除,心跳预留,不更改
char
*
glat
=
NULL
;
//加入gps后删除,心跳预留,不更改
...
@@ -205,12 +205,12 @@ void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_messag
...
@@ -205,12 +205,12 @@ void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_messag
switch
(
gmessage_type
)
switch
(
gmessage_type
)
{
{
case
2
:
case
2
:
if
(
gmessage_
4
_index
<=
50
)
if
(
gmessage_
2
_index
<=
50
)
{
{
free
(
payload_str
);
free
(
payload_str
);
return
;
return
;
}
}
gmessage_
4
_index
=
0
;
gmessage_
2
_index
=
0
;
refresh_cam
();
refresh_cam
();
break
;
break
;
case
3
:
case
3
:
...
...
src/mqtt.o
View file @
05c82e63
No preview for this file type
usr/main.c
View file @
05c82e63
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
#include "opensh.h"
#include "opensh.h"
char
buffer
[
30
];
// 用于存储文件内容
char
buffer
[
30
];
// 用于存储文件内容
uint8_t
AppExit_pin_pwm
=
0
;
//判断坦克或者车的退出
void
*
AppExit
(
void
*
arg
)
//出现意外自动停止
void
*
AppExit
(
void
*
arg
)
//出现意外自动停止
{
{
...
@@ -30,16 +31,27 @@ void *AppExit(void *arg)//出现意外自动停止
...
@@ -30,16 +31,27 @@ void *AppExit(void *arg)//出现意外自动停止
{
{
Delay_Ms
(
0
,
100
);
Delay_Ms
(
0
,
100
);
gPwmCount
++
;
gPwmCount
++
;
gmessage_
4
_index
++
;
gmessage_
2
_index
++
;
if
(
gPwmCount
>=
5
)
if
(
gPwmCount
>=
5
)
{
{
midde_pwm
();
if
(
AppExit_pin_pwm
==
1
)
//车异常问题处理
gPwmCount
=
6
;
{
pin_all_default
();
midde_pwm
();
pin_all_default
();
}
if
(
AppExit_pin_pwm
==
2
)
//坦克异常问题处理
{
midde_pwm
();
pin_all_default
();
digitalWrite
(
2
,
LOW
);
digitalWrite
(
21
,
LOW
);
}
gPwmCount
=
6
;
}
}
if
(
gmessage_
4
_index
>=
150
)
//计时15s,15s才能远程刷新一次
if
(
gmessage_
2
_index
>=
150
)
//计时15s,15s才能远程刷新一次
{
{
gmessage_
4
_index
=
160
;
gmessage_
2
_index
=
160
;
}
}
}
}
...
@@ -50,7 +62,6 @@ void *AppExit(void *arg)//出现意外自动停止
...
@@ -50,7 +62,6 @@ void *AppExit(void *arg)//出现意外自动停止
void
*
Mqttbeat
(
void
*
arg
)
void
*
Mqttbeat
(
void
*
arg
)
{
{
printf
(
"Mqttbeat start
\n
"
);
printf
(
"Mqttbeat start
\n
"
);
//Delay_Ms(15,0);
//refresh_cam();//刷新cam
//refresh_cam();//刷新cam
Delay_Ms
(
15
,
0
);
Delay_Ms
(
15
,
0
);
...
@@ -123,19 +134,34 @@ int main(int argc, char *argv[]) {
...
@@ -123,19 +134,34 @@ int main(int argc, char *argv[]) {
printf
(
"WiringPi setup failed!
\n
"
);
printf
(
"WiringPi setup failed!
\n
"
);
return
1
;
return
1
;
}
}
pin_init
();
pwm_speed
();
//pwm初始化,车为停止
Delay_Ms
(
20
,
0
);
const
char
*
readbuf
=
device_inspect
();
const
char
*
readbuf
=
device_inspect
();
//将第3个和第4个字符提取出来
char
*
sub_str
=
malloc
(
3
);
sub_str
[
0
]
=
readbuf
[
2
];
sub_str
[
1
]
=
readbuf
[
3
];
sub_str
[
2
]
=
'\0'
;
printf
(
"开始初始化了"
);
if
(
strcmp
(
sub_str
,
"02"
)
==
0
){
//坦克的编码
pin_init
();
pinMode
(
2
,
OUTPUT
);
pinMode
(
21
,
OUTPUT
);
digitalWrite
(
2
,
LOW
);
digitalWrite
(
21
,
LOW
);
AppExit_pin_pwm
=
1
;
//坦克的异常停止值
free
(
sub_str
);
}
else
if
(
strcmp
(
sub_str
,
"01"
)
==
0
){
//车的编码
pwm_speed
();
//pwm初始化,车为停止
pin_init
();
AppExit_pin_pwm
=
2
;
//车的异常停止值
free
(
sub_str
);
}
Delay_Ms
(
20
,
0
);
TOPIC
=
malloc
(
24
);
TOPIC
=
malloc
(
24
);
TOPIC2
=
malloc
(
24
);
TOPIC2
=
malloc
(
24
);
TOPIC3
=
malloc
(
16
);
TOPIC3
=
malloc
(
16
);
//TOPIC3=device_inspect();//读取文件内容
//sprintf(TOPIC3,"%s",buffer);
//strcpy(TOPIC3,device_inspect());
sprintf
(
TOPIC2
,
"dev2app/%s"
,
readbuf
);
sprintf
(
TOPIC2
,
"dev2app/%s"
,
readbuf
);
sprintf
(
TOPIC
,
"app2dev/%s"
,
readbuf
);
sprintf
(
TOPIC
,
"app2dev/%s"
,
readbuf
);
sprintf
(
TOPIC3
,
"%s"
,
readbuf
);
sprintf
(
TOPIC3
,
"%s"
,
readbuf
);
...
...
usr/main.o
View file @
05c82e63
No preview for this file type
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