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

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

parent 62ef36cf
...@@ -107,22 +107,16 @@ int device_judg(CodeEnum_t code,char *sub_str) { ...@@ -107,22 +107,16 @@ int device_judg(CodeEnum_t code,char *sub_str) {
device_init(DEVICE_CAR0102); device_init(DEVICE_CAR0102);
my_zlog_info("使用型号%s",sub_str); my_zlog_info("使用型号%s",sub_str);
}else if(code == CAR_0103) { }else if(code == CAR_0103) {
//car_Init_0103(); device_init(DEVICE_CAR0103);
my_zlog_info("使用型号%s",sub_str); my_zlog_info("使用型号%s",sub_str);
}else if(code == CAR_0104) { }else if(code == CAR_0104) {
//car_Init_0104(); device_init(DEVICE_CAR0104);
my_zlog_info("使用型号%s",sub_str);
}else if(code == TANK_0201) {
//tank_Init_0201();
my_zlog_info("使用型号%s",sub_str); my_zlog_info("使用型号%s",sub_str);
}else if(code == TANK_0202) { }else if(code == TANK_0202) {
//tank_Init_0202(); device_init(DEVICE_TANK0202);
my_zlog_info("使用型号%s",sub_str);
}else if(code == SHIP_0301) {
//ship_Init_0301();
my_zlog_info("使用型号%s",sub_str); my_zlog_info("使用型号%s",sub_str);
}else if(code ==PAO_0401) { }else if(code ==PAO_0401) {
//ptr_Init_0401(); device_init(DEVICE_PAO_PTZ0401);
my_zlog_info("使用型号%s",sub_str); my_zlog_info("使用型号%s",sub_str);
}else { }else {
my_zlog_error("没有找到设备号,尝试启用备用mqtt,topic进行改名"); my_zlog_error("没有找到设备号,尝试启用备用mqtt,topic进行改名");
......
...@@ -34,7 +34,15 @@ int main(){ ...@@ -34,7 +34,15 @@ int main(){
my_zlog_warn("此版本电压没有使用INA226"); 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); 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(); thread_end_close();
device_end_close(g_device_type); device_end_close(g_device_type);
......
...@@ -20,6 +20,9 @@ int mylog_init(); ...@@ -20,6 +20,9 @@ int mylog_init();
/*wiringPi初始化函数*/ /*wiringPi初始化函数*/
int wiringPiSetup(); int wiringPiSetup();
/*音频初始化函数*/
int audio_init();
int softiic_init(); int softiic_init();
/*mqtt的topic初始化*/ /*mqtt的topic初始化*/
......
No preview for this file type
#include "devcontrol_common.h" #include "devcontrol_common.h"
#include "gpio_init.h"
const device_didrive device_didrive_control_config_t[]={ const device_didrive device_didrive_control_config_t[]={
{ {
...@@ -32,28 +33,40 @@ 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[]= { const device_abnormal_close_t devcontrol_config_t[]= {
{ {
.device_id = DEVICE_CAR0101, .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_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_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_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_id = DEVICE_TANK0202,
.device_abnormal_stop = tank0202_middle, .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_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 } { .device_id = -1 }
...@@ -75,7 +88,9 @@ void device_stop(int device_id) { ...@@ -75,7 +88,9 @@ void device_stop(int device_id) {
return; 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) { ...@@ -95,7 +110,7 @@ void device_end_close(int device_id) {
return; return;
} }
config->device_close(); // 速度控制初始化 config->device_close();
} }
......
...@@ -12,8 +12,8 @@ const deviceconfig_t device_configs[] = { ...@@ -12,8 +12,8 @@ const deviceconfig_t device_configs[] = {
{ {
.device_id = DEVICE_CAR0101, .device_id = DEVICE_CAR0101,
.device_name = "car0101", .device_name = "car0101",
.gpio_pins = {5, 6, 7, 10, 16, 20, 22, 23, 24, 25, 26, -1}, .gpio_pins = {5, 6, 7, 10, 16, 20, 22, 23, 24, 25, 26, 27, -1},
.gpio_pwms = {27,-1}, .gpio_pwms = {-1},
.device_pwm_init = physics_pwm_init, .device_pwm_init = physics_pwm_init,
.device_control_stop = car0101_middle_pwm, .device_control_stop = car0101_middle_pwm,
.emergency_code = 101 .emergency_code = 101
......
...@@ -67,10 +67,13 @@ void pwm_value(int pin,int value) { //软件陪我们控制调速 ...@@ -67,10 +67,13 @@ void pwm_value(int pin,int value) { //软件陪我们控制调速
if(value==1) { if(value==1) {
if(pin == 27){ if(pin == 27){
if(g_device_type != DEVICE_TANK0202 ){
softPwmWrite(pin, shot_speed); softPwmWrite(pin, shot_speed);
my_zlog_debug("pin:%d,%d",pin,shot_speed); my_zlog_debug("pin:%d,%d",pin,shot_speed);
}
if(g_device_type == DEVICE_TANK0202) softPwmWrite(pin, 40);
} else { } 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); if(g_device_type != DEVICE_TANK0202 )softPwmWrite(pin, shot_speed);
} }
......
...@@ -104,3 +104,19 @@ void audioplay_cycle(){ ...@@ -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
...@@ -6,4 +6,6 @@ ...@@ -6,4 +6,6 @@
void audioplay_mqtt_receive(cJSON *body); //接收音频mqtt播放函数 void audioplay_mqtt_receive(cJSON *body); //接收音频mqtt播放函数
void audioplay_cycle();//音频播放线程中函数 void audioplay_cycle();//音频播放线程中函数
int audio_init();
#endif #endif
\ No newline at end of file
...@@ -12,8 +12,10 @@ ...@@ -12,8 +12,10 @@
typedef struct { typedef struct {
int device_id; // 设备ID (101, 102等) int device_id; // 设备ID (101, 102等)
void (*device_abnormal_stop)(void); // PWM初始化函数指针 void (*device_abnormal_stop)(void); // 车停止
void (*device_close)(void);// 速度控制函数指针 void (*gpio_pin_pulled)(void);
void (*gpio_pwm_pulled)(void);
void (*device_close)(void);// 关闭线程池等
} device_abnormal_close_t; } device_abnormal_close_t;
typedef struct { typedef struct {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#include"common.h"// 用于存储HTTP响应数据的结构体 #include"common.h"// 用于存储HTTP响应数据的结构体
/*2为关闭请求,1为打开*/ /*2为关闭请求,1为打开*/
#define HTTP_REQUEST_INDEX 2 #define HTTP_REQUEST_INDEX 1
struct MemoryStruct { struct MemoryStruct {
char *memory; char *memory;
......
...@@ -82,6 +82,7 @@ void heartbeat_send() { ...@@ -82,6 +82,7 @@ void heartbeat_send() {
//角度发送 //角度发送
void angle_mqtt_send() { void angle_mqtt_send() {
static int angle_i=0;
float angle_shot=ads1115_read_channel(2); float angle_shot=ads1115_read_channel(2);
if(angle_shot>0){ if(angle_shot>0){
angle_shot=angle_shot*360/5; angle_shot=angle_shot*360/5;
...@@ -92,7 +93,11 @@ void angle_mqtt_send() { ...@@ -92,7 +93,11 @@ void angle_mqtt_send() {
cJSON_AddStringToObject(root, "type","tank_angle"); cJSON_AddStringToObject(root, "type","tank_angle");
cJSON_AddNumberToObject(root, "angle",rounded_angle); cJSON_AddNumberToObject(root, "angle",rounded_angle);
char *payload = cJSON_PrintUnformatted(root); char *payload = cJSON_PrintUnformatted(root);
angle_i++;
if(angle_i>=200){
my_zlog_debug("%s",payload); my_zlog_debug("%s",payload);
angle_i=0;
}
mosquitto_publish(mosq, NULL, TOPIC_send_angle, strlen(payload), payload, 0, false); mosquitto_publish(mosq, NULL, TOPIC_send_angle, strlen(payload), payload, 0, false);
cJSON_Delete(root); // 释放 cJSON 对象 cJSON_Delete(root); // 释放 cJSON 对象
} }
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
//extern ThreadPool *pool; //extern ThreadPool *pool;
/*2为国外1为国内*/
#define MQTT_IPMODE 1 // 或通过编译选项 -DMODE=1 指定 #define MQTT_IPMODE 1 // 或通过编译选项 -DMODE=1 指定
#if MQTT_IPMODE == 1 #if MQTT_IPMODE == 1
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
#include "cjson/cJSON.h" #include "cjson/cJSON.h"
/*1为打开验证0为关闭验证*/ /*TRUE为打开验证,FALSE为关闭验证*/
#define VERIFIED_MODE 1 #define VERIFIED_MODE TRUE
#define AES_BLOCK_SIZE 16 #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