File "recv.php"

Full path: /www/geye_t/recv.php
File size: 2.94 KiB (3010 bytes)
MIME-type: text/x-php
Charset: utf-8

Download   Open   Back

<?php

//■■計測データの変換(16進⇒10進)
function data_convert($data,$st,$ct)
{
	$conv_data = substr($data,$st,$ct) .substr($data,$st-2,$ct);
	
	return hexdec($conv_data) /10;
}



//■■データの項目名の変換(16進⇒アスキー文字)
function name_convert($data,$st,$ct)
{

	$conv_name = substr($data,$st,$ct) .substr($data,$st-2,$ct);
	
	//■16進⇒10進⇒2進
	$conv_name = decbin(hexdec($conv_name));
	$len = strlen($conv_name);

	$name_1 = "011" .str_pad(substr($conv_name,0,$len -10),5,0, STR_PAD_LEFT);
	$name_2 = "011" .substr($conv_name,$len -10,5);
	$name_3 = "011" .substr($conv_name,$len -5,5);

	$_log = fopen("data_conv.txt" ,"a");
	fwrite($_log , date("Y-m-d H:i:s",time()) ."__" .$name_1 ."__" .$name_2 ."__" .$name_3 . "\n");
	fclose($_log);


	//■再度変換(2進⇒10進⇒アスキーコード)
	//1文字目
	$name_1 = chr(bindec($name_1));
	
	//2文字目
	$name_2 = chr(bindec($name_2));
	
	//3文字目
	$name_3 = chr(bindec($name_3));
	
	$name_ = $name_1 .$name_2 .$name_3;
		
	return $name_;
}


// ===============================================
// 送信データの取得
// ===============================================
$json_string = file_get_contents('php://input'); 	//読み取り

$t_log = fopen("recv.log" ,"a");
fwrite($t_log , date("Y-m-d H:i:s",time()) ."," .$json_string . "\n");
fclose($t_log);

$obj = json_decode($json_string,1); 				//一度デコード

$data_ = $obj['device'] ."," .date("Y-m-d H:i:s",$obj['time']) ."," .$obj['station'] ."," .$obj['lat'] ."," .$obj['lng'] ."," .$obj['rssi'] ."," .$obj['snr'] .",";
$data_ .= $obj['data'] ."," .$obj['seqNumber'] ."," .$obj['aov'] ."," .$obj['tmp'] ."," .$obj['vlt'] ."," .$obj['binaryParserEnabled'];

$ins_data_filename = "/www/sigfox/insert_data.csv";
$ins_data = fopen($ins_data_filename ,"w");
fwrite($ins_data , $data_);
fclose($ins_data);



//データベース登録処理
$cm = "sudo -u postgres psql lpwa -c \" COPY sigfox.data FROM '" .$ins_data_filename ."' WITH CSV\";";
$a = exec($cm);
$fpt =fopen("result.txt","a");
fwrite($fpt,$cm  ."__result:" .$a ."\n");
fclose($fpt);




//$payload = base64_decode ($obj['payload']); 		// ペイロード部分がBASE64で来るのでデコード

/*
$a_name = name_convert($payload,2,2);
$a_data = data_convert($payload,6,2);
$b_name = name_convert($payload,10,2);
$b_data = data_convert($payload,14,2);
$c_name = name_convert($payload,18,2);
$c_data = data_convert($payload,22,2);
*/

$a_data = $obj['aov'];
$b_data = $obj['tmp'];
$c_data = $obj['vlt'];



$now_log = fopen("data.txt" ,"a");
fwrite($now_log , date("Y-m-d H:i:s",time()) ."__aov:" .$a_data ."__tmp:" .$b_data ."__vlt:" .$c_data . "\n");
fclose($now_log);

$now_log = fopen("header.txt" ,"a");
fwrite($now_log , date("Y-m-d H:i:s",time()) .json_encode(getallheaders ()) . "\n");
fclose($now_log);


//file_put_contents("data_.txt",json_encode($payload)); // ログに保存

//file_put_contents("header.txt",json_encode(getallheaders ())); // ←追加


?>

PHP File Manager