Blame view

src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php 2.36 KB
22521f1c   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

define ("DATAMINING_RESULT_FILE_KEY","datamining");

/**
 * @class IHMInputOutputParamsDataMiningClass
 * @brief Implementation of IHMInputOutputParamsAbstractClass to treat data mining request
 * @details
*/
class IHMInputOutputParamsDataMiningClass extends IHMInputOutputParamsAbstractClass
{
	/*
	 * @brief method to unmarshall a data mining request
	*/
	protected function unmarshallRequest($input)
	{
		/*	'{"id":"cond_2","name":"us44_test1","sampling":600,"gap":5,"description":"","expression":"dst>0","timesrc":"Interval","startDate":"2008-01-31T00:00:00","stopDate":"2008-02-01T00:00:00","durationDay":"0001","durationHour":"00","durationMin":"00","durationSec":"00","leaf":true,"nodeType":"condition"}'
		 */

8c57155b   Benjamin Renard   Integration for t...
20
21
		$requestNode = $this->paramsData->addRequestNode();
		$paramsNode = $requestNode->getParamsNode();
22521f1c   Benjamin Renard   First commit
22
23

		//unmarshall time definition
8c57155b   Benjamin Renard   Integration for t...
24
		$this->unmarshallTimeDefinition($input, 0);
22521f1c   Benjamin Renard   First commit
25
26

		//unmarshall data mining output definition
8c57155b   Benjamin Renard   Integration for t...
27
		$outputsNode = $requestNode->getOutputsNode();
22521f1c   Benjamin Renard   First commit
28
29
30
31
32
33
34
35
36
37
38
		$dataMiningNode = $outputsNode->addNewOutput(RequestOutputTypeEnum::DATAMINING);

		$dataMiningNode->setTimeFormat(RequestOutputDataMiningTimeFormatEnum::ISO);

		$dataMiningNode->setFileFormat(RequestOutputDataMiningFileFormatEnum::XML);

		//parse expression
		$expressionInfo = $this->expressionParser->parse($input->expression);
		$paramId = "datamining_".md5($expressionInfo["expression"]);

		//create a derived param for the expression
e9165342   Benjamin Renard   Write data mining...
39
		$this->paramManager->addProcessParam($paramId, $expressionInfo["expression"], $input->expression,
22521f1c   Benjamin Renard   First commit
40
				$expressionInfo['params'], $input->sampling,
c0535e83   Benjamin Renard   Use units and yTi...
41
				$input->gap,time(),"","",$this->paramsData);
22521f1c   Benjamin Renard   First commit
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
			
		//add derived param to output
		$paramsNode->addParam($paramId);
		$dataMiningNode->setParam($paramId);

		$resultFile = "result_".$this->requestID;
		$this->paramsData->addWaitingResult(DATAMINING_RESULT_FILE_KEY, $resultFile);

		$postProcessCmd  = "mv timeTable_datamining_*.xml ".$resultFile.".xml";
		$postProcessCmd .= " && ";
		$postProcessCmd .= "mv Gaps_timeTable_datamining_*.xml Gaps_".$resultFile.".xml";

		$this->paramsData->setPostCmd($postProcessCmd);

		return $this->paramsData;
	}

	/*
	 * @brief method to marshall the result of a data mining request
	*/
	protected function marshallResult($data)
	{
		return $this->commonMarshallResult($data,DATAMINING_RESULT_FILE_KEY);
	}
}
e9165342   Benjamin Renard   Write data mining...
67
?>