SearchLightTemControl.c
1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdio.h>
#include "Psdk_UI_io.h"
#include "JZsdk_Base/JZsdk_Code/JZsdk_InsCode.h"
#include "BaseConfig.h"
#include "Megaphone_InputAndOutput.h"
#include "JZsdkLib.h"
#include "UI_control.h"
#include <unistd.h>
#include <string.h>
#include <pthread.h>
#include "./JZ_SearchLightTemp_calculation.h"
#include "./SearchLightTemControl.h"
static int g_InputTemp = 0;
static int g_InputLumen = 0;
static int g_OutputLumen = 0;
//1、输入函数
T_JZsdkReturnCode JZsdk_SearchLightTemControl_Input(int InputTemp, int InputLumen)
{
//输入参数
g_InputTemp = InputTemp;
g_InputLumen = InputLumen;
delayMs(1);
return g_OutputLumen;
}
//2、刷新亮度函数
T_JZsdkReturnCode JZsdk_SearchLightTemControl_FlushLumen(int InputLumen)
{
g_InputLumen = InputLumen;
JZsdk_SearchLightSetInitialLumen(g_InputLumen);
}
//控温线程
static void *TempControl_Task(void *arg)
{
int DelayTime;
while (1)
{
JZsdk_SearchLightTemControl( (float)g_InputTemp, g_InputLumen, &g_OutputLumen, &DelayTime);
if (DelayTime > 0)
{
printf("触发温控延迟\n");
delayMs(DelayTime);
}
else
{
delayMs(1);
}
DelayTime = 0;
}
}
//控件
//控件控制初始化
T_JZsdkReturnCode JZsdk_SearchLightTemControl_Init()
{
pthread_t WriteDataTask;
pthread_attr_t task_attribute; //线程属性
pthread_attr_init(&task_attribute); //初始化线程属性
pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); //设置线程分离属性
int opus_Protection = pthread_create(&WriteDataTask,&task_attribute,TempControl_Task,NULL); //线程
if(opus_Protection != 0)
{
JZSDK_LOG_ERROR("创建控件写入线程失败!");
return -1;
}
}