我正在制作一个具有计划功能的控制项目。我正在使用rasp-pi 3(device)并使用php和sql来关闭电气负载。我创建了一个名为script.php的php页面,该页面始终每10秒刷新一次。
在该php页面中,具有一个功能:
<app-child (element)="receiveContent($event)"></app-child>
问题在于每次刷新灯泡(示例电气负载)都会闪烁,这是因为php脚本从数据库中加载了所有数据。眨眼功能仅在同一引脚上有2个或更多时间表时才有效。如果为rasp-pi的特定管脚制定了一个时间表,则该方法可以正常工作。
例如 轻
插针编号: 2
计划时间:
第2针处有2个时间表
第一
开始时间: 2:30
结束时间: 3:00
第二:
开始时间: 1:00;
结束时间: 1:30;
假设时间为2:40, 由于我的查询是降序 First 时间表是要检查if else语句的第一个数据。由于现在是2:40,我们希望 First 日程现在正在执行(ON)。
刷新页面时,将从数据库中加载数据。 第一个计划是开的,将是第一个,然后第二个计划将排在最后。由于 First 时间表排在最前面,因此每次刷新都会打开闪烁,最后关闭闪烁效果导致的灯光。
谁能找到解决此问题的方法?我现在很难解决这个问题了三个星期。它占用了我的时间,还需要学习很多其他东西。
这就是我的查询方式:
function weekdaychek($startingTime, $endingTime, $pinNumber, $idOfroom){
$date_now = new DateTime();
$date1 = new DateTime($startingTime);
$date2 = new DateTime($endingTime);
//SET GPIO INTO OUTPUT
system("gpio -g mode ".$pinNumber." out");
if ($date_now > $date1){
$dat1 = true;
} else{
$dat1 = false;
}
if ($date_now < $date1) {
$dat2 = true;
} else{
$dat2 = false;
}
if ($dat1 == true && $dat2 == true) {
//SET GPIO INTO HIGH STATE OR ON
system("gpio -g write ".$pinNumber." 1");
life($idOfroom);
} else {
//SET GPIO INTO LOW STATE OR OFF
system("gpio -g write ".$pinNumber." 0");
dead($idOfroom);
}
}