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

加入了互斥锁

parent 20d1604c
...@@ -46,10 +46,16 @@ int thread_start_init(ThreadFunc thread_exit_time, ThreadFunc thread_mqtt_beat, ...@@ -46,10 +46,16 @@ int thread_start_init(ThreadFunc thread_exit_time, ThreadFunc thread_mqtt_beat,
void *thread_exit_time(void *arg) { void *thread_exit_time(void *arg) {
while(1){ while(1){
delay_ms(100); delay_ms(100);
pthread_mutex_lock(&g_exit_count_mutex);
g_devcontrol_exit_count++; g_devcontrol_exit_count++;
pthread_mutex_lock(&g_exit_count_mutex);
if(g_devcontrol_exit_count>=5) { if(g_devcontrol_exit_count>=5) {
device_stop(g_device_type); device_stop(g_device_type);
pthread_mutex_lock(&g_exit_count_mutex);
g_devcontrol_exit_count=6; g_devcontrol_exit_count=6;
pthread_mutex_unlock(&g_exit_count_mutex);
} }
} }
return NULL; return NULL;
...@@ -126,8 +132,18 @@ void *thread_time_calculation(void *arg) { ...@@ -126,8 +132,18 @@ void *thread_time_calculation(void *arg) {
while (1) { while (1) {
delay_ms(5); delay_ms(5);
g_device_delay_count++;//设备计时,坦克打击倒退逻辑 g_device_delay_count++;//设备计时,坦克打击倒退逻辑
pthread_mutex_lock(&g_verify_mutex);
g_verify_count++;//验证计时,每15s一次 g_verify_count++;//验证计时,每15s一次
if(g_verify_count >= 20000) g_verify_count = 20000; pthread_mutex_unlock(&g_verify_mutex);
if(g_verify_count >= 20000) {
pthread_mutex_lock(&g_verify_mutex);
g_verify_count = 20000;
pthread_mutex_unlock(&g_verify_mutex);
}
if(g_device_delay_count >= 5000) g_device_delay_count = 5000; if(g_device_delay_count >= 5000) g_device_delay_count = 5000;
} }
return NULL; return NULL;
......
No preview for this file type
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include "device_fileopen.h" #include "device_fileopen.h"
#include "device_identity.h" #include "device_identity.h"
char gwebcam[254];//存放启动火狐网站命令 char gwebcam[2048];//存放启动火狐网站命令
int opencamsh_china(){ int opencamsh_china(){
const char* url = "https://jywy.yd-ss.com?dev="; const char* url = "https://jywy.yd-ss.com?dev=";
...@@ -20,6 +20,32 @@ int opencamsh_china(){ ...@@ -20,6 +20,32 @@ int opencamsh_china(){
} }
// int opencamsh_china() {
// const char* url = "https://jywy.yd-ss.com?dev=";
// char urls[50];
// sprintf(urls, "%s%s", url, mqtt_topic_pure_number());
// // 使用nice和taskset提高优先级并绑定CPU核心
// sprintf(gwebcam, "su - orangepi -c \"nice -n -10 taskset -c 1 chromium-browser --use-fake-ui-for-media-stream "
// "--use-gl=egl "
// "--enable-features=WebRTC-H264WithOpenH264FFmpeg "
// "--disable-features=WebRTC-IPv6OnWiFi "
// "--enable-gpu-rasterization "
// "--enable-zero-copy "
// "--disable-quic "
// "--disable-gpu-compositing "
// "--autoplay-policy=no-user-gesture-required "
// "--window-size=800,600 --start-maximized "
// "%s\"", urls);
// system(gwebcam);
// my_zlog_debug("%s", gwebcam);
// my_zlog_debug("open cam");
// return 0;
// }
int opencamsh_abroad(){ int opencamsh_abroad(){
const char* url = "https://video.luckycar.top/?dev="; const char* url = "https://video.luckycar.top/?dev=";
char urls[50]; char urls[50];
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
int g_heartbeat_count=0; int g_heartbeat_count=0;
pthread_mutex_t g_exit_count_mutex = PTHREAD_MUTEX_INITIALIZER;
int g_devcontrol_exit_count=0; int g_devcontrol_exit_count=0;
int g_message_type=0; int g_message_type=0;
...@@ -132,7 +133,6 @@ void message_3(cJSON *body){ ...@@ -132,7 +133,6 @@ void message_3(cJSON *body){
g_valt[0]=typeTemp; g_valt[0]=typeTemp;
g_valt[1]=modeTemp; g_valt[1]=modeTemp;
g_valt[2]=valTemp; g_valt[2]=valTemp;
g_devcontrol_exit_count = 0;
my_zlog_debug("typeTemp:%d",g_valt[0]); my_zlog_debug("typeTemp:%d",g_valt[0]);
my_zlog_debug("modeTemp:%d",g_valt[1]); my_zlog_debug("modeTemp:%d",g_valt[1]);
...@@ -159,7 +159,6 @@ void message_4(cJSON *body){//message 为4时候 ...@@ -159,7 +159,6 @@ void message_4(cJSON *body){//message 为4时候
valTemp=1; valTemp=1;
} }
g_devcontrol_exit_count=0;
g_valt[0]=0; g_valt[0]=0;
g_valt[1]=pinTemp; g_valt[1]=pinTemp;
g_valt[2]=valTemp; g_valt[2]=valTemp;
...@@ -248,6 +247,10 @@ int device_message_receive(cJSON *json){//接收到的控制设备的mqtt消息 ...@@ -248,6 +247,10 @@ int device_message_receive(cJSON *json){//接收到的控制设备的mqtt消息
return 1; return 1;
} }
pthread_mutex_lock(&g_exit_count_mutex);
g_devcontrol_exit_count = 0;
pthread_mutex_unlock(&g_exit_count_mutex);
g_message_type=message_type->valueint; g_message_type=message_type->valueint;
my_zlog_debug("message_type: %d",message_type->valueint); my_zlog_debug("message_type: %d",message_type->valueint);
switch(g_message_type){ switch(g_message_type){
......
...@@ -3,11 +3,14 @@ ...@@ -3,11 +3,14 @@
#include "cjson/cJSON.h" #include "cjson/cJSON.h"
#include <pthread.h>
extern int g_heartbeat_count; extern int g_heartbeat_count;
extern pthread_mutex_t g_exit_count_mutex;
extern int g_devcontrol_exit_count; extern int g_devcontrol_exit_count;
void mqtt_beat_wirte(); void mqtt_beat_wirte();
int device_message_receive(cJSON *json); int device_message_receive(cJSON *json);
......
...@@ -2,12 +2,13 @@ ...@@ -2,12 +2,13 @@
#define MQTT_VERIFY_H__ #define MQTT_VERIFY_H__
#include "cjson/cJSON.h" #include "cjson/cJSON.h"
#include <pthread.h>
/*TRUE为打开验证,FALSE为关闭验证*/ /*TRUE为打开验证,FALSE为关闭验证*/
#define VERIFIED_MODE FALSE #define VERIFIED_MODE TRUE
#define AES_BLOCK_SIZE 16 #define AES_BLOCK_SIZE 16
extern pthread_mutex_t g_verify_mutex;
extern int g_verify_count;//验证计时 extern int g_verify_count;//验证计时
extern int g_verify_index;//判断是否验证成功 extern int g_verify_index;//判断是否验证成功
......
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