<?php
if(_SERVER("REQUEST_METHOD"))
exit; // avoid php execution via http request
include_once "lib/sd_340.php";
include_once "lib/vn_ftp.php";
include_once "lib/DS18B20.php";
define ("THRES_TIMER_ID", 1);
// change directory, makes directory if it doesn't exist
function change_dir($dir)
{
$retb = ftp_chdir($dir);
if($retb == TRUE) return TRUE;
$dir_list = array();
$dir_list = explode("/", $dir, 10);
$cnt = count($dir_list);
// move to root
$retb = ftp_chdir("/");
if($retb == FALSE) return FALSE;
for($i = 0; $i < $cnt; $i++)
{
if($dir_list[$i] == "") continue;
$retb = ftp_chdir($dir_list[$i]);
if($retb == TRUE) continue;
$ret = ftp_mkdir($dir_list[$i]);
if($ret === FALSE) return FALSE;
else
{
$retb = ftp_chdir($dir_list[$i]);
if($retb == TRUE) continue;
else return FALSE;
}
}
return TRUE;
}
function loop_session()
{
global $ftp_state;
global $ftp_server, $ftp_port;
global $ftp_id, $ftp_pass;
global $ftp_cur_dir;
if($ftp_state == 0)
{
$retb = ftp_connect($ftp_server, $ftp_port, 10);
if($retb == FALSE)
{
echo "ftp - failed to connect to the FTP server.\r\n";
return;
}
else $ftp_state = 1;
}
if($ftp_state == 1)
{
$retb = ftp_login($ftp_id, $ftp_pass);
$ftp_cur_dir = "";
if($retb == FALSE)
{
echo "ftp - login failed.\r\n";
ftp_close();
$ftp_state = 0;
}
$ftp_state = 2;
}
$tcp_state = ftp_cmd_session_state(); // checking ftp tcp session
if($tcp_state == 0) $ftp_state = 0;
}
function loop_temperature()
{
global $ftp_cur_dir, $ftp_cur_fn, $ftp_root_dir;
global $update_interval;
$timer = st_free_get_count(THRES_TIMER_ID);
//if($timer < $update_interval)
//return;
// read temperature from sensor
DS18B20_convert_t();
$temp = DS18B20_read_temp();
$temp = sprintf("%.01f", $temp);
echo "$temp";
$curr_time = date("Ymd-His");
$today = substr($curr_time, 0, 8);
if($today !== $ftp_cur_dir)
{
change_dir("/$ftp_root_dir");
ftp_mkdir($today);
change_dir("/$ftp_root_dir/$today");
$ftp_cur_dir = $today;
}
$ftp_cur_fn = substr($curr_time, 0, 11) . '.csv';
ftp_append($ftp_cur_fn, "$temp,");
st_free_setup(THRES_TIMER_ID, "sec"); // reset timer
}
$ftp_server = "192.168.0.3";
$ftp_port = 1475;
$ftp_id = "phpoc_device_2";
$ftp_pass = "ilovephpoc";
$ftp_root_dir = "";
$ftp_state = 0;
$ftp_cur_fn = ""; // current filename
$ftp_cur_dir = ""; // current directory
$update_interval = 2; // 2 seconds
st_free_setup(THRES_TIMER_ID, "sec");
DS18B20_setup(1, 0);
while(1)
{
loop_session();
loop_temperature();
}
?>
Comments
Please log in or sign up to comment.