Commit f12cef22 authored by 学习的菜鸟's avatar 学习的菜鸟

重构基本完成,但是一些地方还需优化

parent 62ef36cf
......@@ -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进行改名");
......
......@@ -33,9 +33,17 @@ int main(){
if(ina225_init()!=0){
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);
my_log_close();//关闭日志
......
......@@ -20,6 +20,9 @@ int mylog_init();
/*wiringPi初始化函数*/
int wiringPiSetup();
/*音频初始化函数*/
int audio_init();
int softiic_init();
/*mqtt的topic初始化*/
......
No preview for this file type
#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();
}
......
......@@ -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
......
......@@ -67,10 +67,13 @@ void pwm_value(int pin,int value) { //软件陪我们控制调速
if(value==1) {
if(pin == 27){
softPwmWrite(pin, shot_speed);
my_zlog_debug("pin:%d,%d",pin,shot_speed);
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);
}
......
......@@ -103,4 +103,20 @@ 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
......@@ -6,4 +6,6 @@
void audioplay_mqtt_receive(cJSON *body); //接收音频mqtt播放函数
void audioplay_cycle();//音频播放线程中函数
int audio_init();
#endif
\ No newline at end of file
......@@ -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 {
......
......@@ -4,7 +4,7 @@
#include"common.h"// 用于存储HTTP响应数据的结构体
/*2为关闭请求,1为打开*/
#define HTTP_REQUEST_INDEX 2
#define HTTP_REQUEST_INDEX 1
struct MemoryStruct {
char *memory;
......
......@@ -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);
my_zlog_debug("%s",payload);
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 对象
}
......
......@@ -6,6 +6,7 @@
//extern ThreadPool *pool;
/*2为国外1为国内*/
#define MQTT_IPMODE 1 // 或通过编译选项 -DMODE=1 指定
#if MQTT_IPMODE == 1
......
......@@ -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
......
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