Commit c380ff23 authored by 学习的菜鸟's avatar 学习的菜鸟
parent 8deca748
......@@ -2,5 +2,5 @@
#define PROJECT_VERSION_MINOR 1
#define PROJECT_VERSION_PATCH 8
#define GIT_HASH ""
#define BUILD_TIMESTAMP "2025-06-24T10:17:31"
#define BUILD_TIMESTAMP "2025-06-26T03:49:36"
#define BUILD_USER "orangepi"
No preview for this file type
......@@ -6,10 +6,14 @@
extern int gverify_count;//验证计时
extern int gverify_index;//判断是否验证成功
int receive_jwt(cJSON *body);//jwt验证
//接收安卓发送的mqtt
int receive_verify(cJSON *body);
//int receive_verify(cJSON *body);//为aes验证,暂时不用,注释
//加密并发送mqtt
int mqtt_encryption();
//int mqtt_encryption();//为aes验证,暂时不用,注释
int message2006_verify(cJSON *body);
#endif
\ No newline at end of file
......@@ -8,6 +8,7 @@ char urlbuf[512];
char keybuf[256];
double audio_volume=0.8;
//接收音频播放
void audioplay_mqtt_receive(cJSON *json) {
// 解析"audioLink"字段(修正了原始JSON中的拼写错误)
cJSON *audio_link = cJSON_GetObjectItemCaseSensitive(json, "audioLink");
......@@ -49,7 +50,8 @@ void audioplay_mqtt_receive(cJSON *json) {
}
}
void audioplay_send_mqtt() {//发送音频播放是否完毕
//发送音频播放是否完毕
void audioplay_send_mqtt() {
cJSON *root = cJSON_CreateObject();
cJSON *body = cJSON_CreateObject();
cJSON *head = cJSON_CreateObject();
......@@ -73,6 +75,7 @@ void audioplay_send_mqtt() {//发送音频播放是否完毕
cJSON_Delete(root);
}
//音频播放
void audioplay_cycle(){
char command[512];
int ret;
......
......@@ -52,6 +52,7 @@ char *glon=NULL;//加入gps后删除,心跳预留,不更改
time_t gStart;//时间戳
//mqtt初始化
int mqtt_init() {
mosquitto_lib_init();
// 这里创建mosq可以保留,也可以删除这一行,让创建放到 Mqtt_onnect 里
......@@ -64,7 +65,8 @@ int mqtt_init() {
return 0;
}
void on_connect(struct mosquitto *mosq, void *obj, int rc) {//回调函数
//回调函数
void on_connect(struct mosquitto *mosq, void *obj, int rc) {
if (rc == 0) {
my_zlog_debug("Connected to broker");
topic_middle_value();
......@@ -76,7 +78,8 @@ void on_connect(struct mosquitto *mosq, void *obj, int rc) {//回调函数
}
}
void heartbeat_send() {//心跳发送格式*5/2
//心跳发送格式*5/2
void heartbeat_send() {
float voltage = INA226_readBusVoltage();
float current = INA226_readCurrent();
//my_zlog_debug("%.2f\n", voltage);
......@@ -130,7 +133,8 @@ void heartbeat_send() {//心跳发送格式*5/2
cJSON_Delete(root); // 释放 cJSON 对象
}
void angle_mqtt_send() { //角度发送
//角度发送
void angle_mqtt_send() {
float angle_shot=ads1115_read_channel(2);
if(angle_shot>0){
angle_shot=angle_shot*360/5;
......@@ -151,14 +155,16 @@ void angle_mqtt_send() { //角度发送
}
void mqtt_wirte(){//心跳格式,每5s一次心跳
//心跳格式,每5s一次心跳
void mqtt_wirte(){
if( heartbeat_count >= 30) heartbeat_send();
if( AppExit_pin_pwm == 202) angle_mqtt_send();
}
void message_3(cJSON *body){//message_type为3,控制pwm
//message_type为3,控制pwm
void message_3(cJSON *body){
cJSON *pwm_ctrl = cJSON_GetObjectItem(body, "pwm_ctrl");
cJSON *pin_setctrl = cJSON_GetObjectItem(body, "pin_setctrl");
if(pwm_ctrl==NULL||pin_setctrl==NULL){
......@@ -220,7 +226,39 @@ void message_4(cJSON *body){//message 为4时候
if(AppExit_pin_pwm == 202 ) tank_shot_back_stop(gvalt[1],gvalt[2]);
}
int download_message(cJSON *body){//接收的下载的mqtt消息
//当接收到2时候验证
void message_2_judyverify(cJSON *body){
receive_jwt(body);
if(gverify_index == 0) {
refresh_cam();
} else {
my_zlog_warn("验证不通过");
}
}
//当接收到3时候验证
void message_3_judyverify(cJSON *body){
receive_jwt(body);
if(gverify_index == 0) {
message_3(body);
} else {
my_zlog_warn("验证不通过");
}
}
//当接收到4时候验证
void message_4_judyverify(cJSON *body){
receive_jwt(body);
if(gverify_index == 0) {
message_4(body);
} else {
my_zlog_warn("验证不通过");
}
}
//接收的下载的mqtt消息
int download_message(cJSON *body){
if (cJSON_IsObject(body)) {
// 获取 doby 对象
// 获取 site 中的 name 和 url
......@@ -246,6 +284,7 @@ int download_message(cJSON *body){//接收的下载的mqtt消息
return 0;
}
//接收到设备改名函数
int device_mqttchange_name(cJSON *device_id){
cJSON *id = cJSON_GetObjectItem(device_id, "id");// 提取ID
cJSON *date = cJSON_GetObjectItem(device_id, "date");// 提取日期
......@@ -274,21 +313,16 @@ int device_message_receive(cJSON *json){//接收到的控制设备的mqtt消息
gmessage_type=message_type->valueint;
my_zlog_debug("message_type: %d",message_type->valueint);
switch(gmessage_type){
case 1:
system("sudo reboot");//重启香橙派
my_zlog_debug("重启成功");
break;
case 2:
refresh_cam();
my_zlog_debug("刷新成功");
message_2_judyverify(body);
my_zlog_debug("进入刷新");
break;
case 3:
receive_verify(body);
if(gverify_index == 0) message_3(body);
message_3_judyverify(body);
my_zlog_debug("进入pwm控制");
break;
case 4:
message_4(body);
message_4_judyverify(body);
my_zlog_debug("进入引脚控制");
break;
case 2001:
......@@ -309,6 +343,19 @@ int device_message_receive(cJSON *json){//接收到的控制设备的mqtt消息
break;
case 2005:
download_message(body);
my_zlog_debug("进入下载");
break;
case 2006:
message2006_verify(body);
my_zlog_debug("进入消息为2006验证");
break;
case 2011:
system("sudo reboot");//重启香橙派
my_zlog_debug("重启成功");
break;
case 2012:
refresh_cam();
my_zlog_debug("刷新成功");
break;
default:
break;
......@@ -318,7 +365,8 @@ int device_message_receive(cJSON *json){//接收到的控制设备的mqtt消息
return 0;
}
void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message) {//消息回环函数
//消息回环函数
void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message) {
time_t end = time(NULL);
if(gStart+5>end){
......@@ -349,8 +397,8 @@ void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_messag
}
}
int mqtt_create(struct mosquitto *mosq) { // 返回连接结果,0成功,非0失败
// 返回连接结果,0成功,非0失败
int mqtt_create(struct mosquitto *mosq) {
mosquitto_reconnect_delay_set(mosq, 2, 10, true);
mosquitto_connect_callback_set(mosq, on_connect);
mosquitto_message_callback_set(mosq, on_message);
......@@ -365,7 +413,8 @@ int mqtt_create(struct mosquitto *mosq) { // 返回连接结果,0成功,非0
return 0; // 成功
}
int mqtt_cycle(struct mosquitto *mosq) {//阻塞型
//阻塞型
int mqtt_cycle(struct mosquitto *mosq) {
// 这个函数会阻塞直到连接断开或错误返回
int rc = mosquitto_loop_forever(mosq, -1, 1);
if (rc != MOSQ_ERR_SUCCESS) {
......@@ -386,6 +435,7 @@ int mqtt_cycle(struct mosquitto *mosq) {//阻塞型
// }
// }
//mqtt清理
void mqtt_clean(struct mosquitto *mosq){
// 清理
mosquitto_destroy(mosq);
......
This diff is collapsed.
......@@ -138,7 +138,7 @@ void *delay_count(void *arg) {
Delay_Ms(0,5);
device_delay_count++;//设备计时,坦克打击倒退逻辑
gverify_count++;//验证计时,每15s一次
if(gverify_count >= 5000) gverify_count = 5000;
if(gverify_count >= 20000) gverify_count = 20000;
if(device_delay_count >= 5000) device_delay_count = 5000;
}
return NULL;
......
......@@ -70,19 +70,19 @@ void car0102_mode_2_back(unsigned char gval) {
if (gval < 50) {
pwmWrite(PWM_PIN_SPEED, 0);
} else if (gval <= 55) {
pwmWrite(PWM_PIN_SPEED, b + 30 * k);
pwmWrite(PWM_PIN_SPEED,b + 40 * k);
} else if (gval <= 60) {
pwmWrite(PWM_PIN_SPEED, b + 30 * k);
pwmWrite(PWM_PIN_SPEED,b + 40 * k);
} else if (gval <= 65) {
pwmWrite(PWM_PIN_SPEED, b + 30 * k);
pwmWrite(PWM_PIN_SPEED, b + 40* k);
} else if (gval <= 70) {
pwmWrite(PWM_PIN_SPEED, b + 30 * k);
pwmWrite(PWM_PIN_SPEED, b + 40 * k);
} else if (gval <= 75) {
pwmWrite(PWM_PIN_SPEED, b + 30 * k);
pwmWrite(PWM_PIN_SPEED, b + 40 * k);
} else if (gval <= 90) {
pwmWrite(PWM_PIN_SPEED, b + 30 * k);
pwmWrite(PWM_PIN_SPEED, b + 40 * k);
} else if (gval <= 100) {
pwmWrite(PWM_PIN_SPEED, b + 35 * k);
pwmWrite(PWM_PIN_SPEED, b + 40 * k);
} else if (gval <= 110) {
pwmWrite(PWM_PIN_SPEED, b + 40 * k);
} else if (gval <= 120) {
......
......@@ -5,6 +5,7 @@
char temperature[20];
float temp_str;
//温度获取
int heat_tem() {
FILE *file;
char line[MAX_LINE_LENGTH];
......
......@@ -4,7 +4,8 @@
#include "gpio_pwm_carship.h"
#include "request.h"
int alarm_highest(int index) {//最高警报,最低电压报警
//最高警报,最低电压报警
int alarm_highest(int index) {
if(index == 1) {
pin_value(20,1);//紫灯
if(enable_buzzer_value) {
......@@ -18,7 +19,8 @@ int alarm_highest(int index) {//最高警报,最低电压报警
return index ;
}
int alarm_low(int index) {//比较小警报
//比较小警报
int alarm_low(int index) {
if(index == 1) {
pin_value(16,1);//黄灯
} else if(index == 0) {
......
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