Commit bdce09823c821bb7db2cf93eafd616d3942b9f3a

Authored by Benjamin Renard
2 parents ab2ddaca f57e1f21

Merge branch 'develop' into amdadev

src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php
... ... @@ -14,7 +14,7 @@ class IHMInputOutputParamsDataMiningClass extends IHMInputOutputParamsAbstractCl
14 14 */
15 15 protected function unmarshallRequest($input)
16 16 {
17   - /* '{"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"}'
  17 + /* '{"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","durationMs":"000","leaf":true,"nodeType":"condition"}'
18 18 */
19 19  
20 20 $requestNode = $this->paramsData->addRequestNode(0);
... ...
src/InputOutput/IHMImpl/Params/IHMInputOutputParamsAbstractClass.php
... ... @@ -110,10 +110,8 @@ abstract class IHMInputOutputParamsAbstractClass implements InputOutputInterface
110 110 break;
111 111 case "Interval" :
112 112 date_default_timezone_set('UTC');
113   - $timeStamp = strtotime($input->startDate);
114   - $start = CommonClass::timeStampToDDTime($timeStamp);
115   - $timeStamp = strtotime($input->stopDate) - strtotime($input->startDate);
116   - $duration = CommonClass::timeStampToDDTime($timeStamp);
  113 + $start = CommonClass::strTimeToDDTime($input->startDate);
  114 + $duration = CommonClass::getDurationDDTime($input->stopDate, $input->startDate);
117 115 $timesNode->addInterval($start, $duration);
118 116 break;
119 117 default :
... ...
src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php
... ... @@ -391,8 +391,7 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
391 391 case 'instantPlot':
392 392 $plotNode = $panelNode->addPlotElement(RequestOutputPlotElementTypeEnum::INSTANTPLOT);
393 393 date_default_timezone_set('UTC');
394   - $timeStamp = strtotime($panelData->{'panel-instant-time'});
395   - $time = CommonClass::timeStampToDDTime($timeStamp);
  394 + $time = CommonClass::strTimeToDDTime($panelData->{'panel-instant-time'});
396 395 $plotNode->setTime($time);
397 396 $this->isInstantPlot = true;
398 397 break;
... ... @@ -1064,8 +1063,7 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1064 1063 switch ($axisNode->getName()) {
1065 1064 case REQUESTOUTPUTPLOTTIMEAXIS_NAME:
1066 1065 date_default_timezone_set('UTC');
1067   - $timeStamp = strtotime($constantData->{'constant-time-value'});
1068   - $time = CommonClass::timeStampToDDTime($timeStamp);
  1066 + $time = CommonClass::strTimeToDDTime($constantData->{'constant-time-value'});
1069 1067 $constantNode->setConstantValue($time);
1070 1068 break;
1071 1069 default:
... ... @@ -1101,8 +1099,7 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1101 1099  
1102 1100 if ($isTimePlot && !$textData->{'text-x-relative'}) {
1103 1101 date_default_timezone_set('UTC');
1104   - $timeStamp = strtotime($textData->{'text-x-timevalue'});
1105   - $time = CommonClass::timeStampToDDTime($timeStamp);
  1102 + $time = CommonClass::strTimeToDDTime($textData->{'text-x-timevalue'});
1106 1103 $textNode->setX($time);
1107 1104 } else if ($textData->{'text-x-relative'})
1108 1105 $textNode->setX(($textData->{'text-x-floatvalue'} * 100) . "%");
... ... @@ -1463,8 +1460,10 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1463 1460 return $this->unmarshallZoom($actionInput, $plotInput);
1464 1461 case 'forward':
1465 1462 case 'halfforward':
  1463 + case 'quarterforward':
1466 1464 case 'backward':
1467 1465 case 'halfbackward':
  1466 + case 'quarterbackward':
1468 1467 case 'extend':
1469 1468 case 'shift':
1470 1469 return $this->unmarshallNavigation($actionInput, $plotInput);
... ... @@ -1657,6 +1656,10 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1657 1656 $startTimeStamp += ($duration / 2);
1658 1657 $stopTimeStamp += ($duration / 2);
1659 1658 break;
  1659 + case 'quarterforward':
  1660 + $startTimeStamp += ($duration / 4);
  1661 + $stopTimeStamp += ($duration / 4);
  1662 + break;
1660 1663 case 'backward':
1661 1664 $startTimeStamp -= $duration;
1662 1665 $stopTimeStamp -= $duration;
... ... @@ -1665,6 +1668,10 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1665 1668 $startTimeStamp -= ($duration / 2);
1666 1669 $stopTimeStamp -= ($duration / 2);
1667 1670 break;
  1671 + case 'quarterbackward':
  1672 + $startTimeStamp -= ($duration / 4);
  1673 + $stopTimeStamp -= ($duration / 4);
  1674 + break;
1668 1675 case 'extend':
1669 1676 $startTimeStamp -= $input->{'duration'};
1670 1677 $stopTimeStamp += $input->{'duration'};
... ...
src/InputOutput/IHMImpl/Tools/CommonClass.php
... ... @@ -34,6 +34,51 @@ class CommonClass
34 34 $t = date("His",$timeStamp)."000";
35 35 return $y.$d.$t;
36 36 }
  37 +
  38 + public static function getDurationDDTime($strStop, $strStart)
  39 + {
  40 +
  41 + $timeStamp = strtotime($strStop) - strtotime($strStart);
  42 +
  43 + $diffMs = CommonClass::getMsIntFromStrTime($strStop) - CommonClass::getMsIntFromStrTime($strStart);
  44 + $duration =CommonClass::timeStampToDDTime($timeStamp);
  45 +
  46 + return str_pad(strval((intval($duration) + $diffMs)),16,'0', STR_PAD_LEFT);
  47 + }
  48 +
  49 + public static function getMsIntFromStrTime($strTime){
  50 + $ms = end(explode(".", $strTime));
  51 + if(strlen($ms) == 0 || strlen($ms) > 6 )
  52 + return 0;
  53 + if(intval($ms) >= 1000)
  54 + return (int) intval($ms)/1000;
  55 + return intval($ms);
  56 + }
  57 +
  58 + public static function getMsStrFromStrTime($strTime){
  59 + $intMs = CommonClass::getMsIntFromStrTime($strTime);
  60 + return str_pad($intMs,3, '0', STR_PAD_LEFT);
  61 + }
  62 +
  63 +
  64 + public static function strTimeToDDTime($strTime)
  65 + {
  66 + $timeStamp = strtotime($strTime);
  67 + $ms = end(explode(".", $strTime));
  68 + if(strlen($ms) ==0 || strlen($ms) > 6)
  69 + $ms= "000";
  70 + $y = date("Y",$timeStamp);
  71 + $d = date("z",$timeStamp);
  72 + if (strlen($d) == 0)
  73 + $d = "000";
  74 + else if (strlen($d) == 1)
  75 + $d = "00".$d;
  76 + else if (strlen($d) == 2)
  77 + $d = "0".$d;
  78 + $t = date("His",$timeStamp).$ms;
  79 + return $y.$d.$t;
  80 + }
  81 +
37 82 /*
38 83 * @brief DDTime to timestamp conversion
39 84 */
... ... @@ -42,7 +87,7 @@ class CommonClass
42 87 date_default_timezone_set('UTC');
43 88 $date = DateTime::createFromFormat('YzHisu', $DDTime);
44 89  
45   - return strtotime($date->format("Y-m-d\TH:i:s"));
  90 + return strtotime($date->format("Y-m-d\TH:i:s.u"));
46 91 }
47 92  
48 93 /*
... ... @@ -52,7 +97,7 @@ class CommonClass
52 97 {
53 98 $date = DateTime::createFromFormat('YzHisu', $DDTime);
54 99  
55   - return $date->format("Y-m-d\TH:i:s");
  100 + return $date->format("Y-m-d\TH:i:s.u");
56 101 }
57 102  
58 103 /*
... ... @@ -63,7 +108,7 @@ class CommonClass
63 108 $startStamp = self::DDTimeToTimeStamp($DDStart);
64 109 $intStamp = self::DDTimeToTimeStamp($DDInterval);
65 110  
66   - return date("Y-m-d\TH:i:s", $startStamp + $intStamp);
  111 + return date("Y-m-d\TH:i:s.u", $startStamp + $intStamp);
67 112 }
68 113  
69 114 public static function rrmdir($dir)
... ...
src/InputOutput/IHMImpl/Tools/IHMUserWSManagerClass.php
... ... @@ -194,7 +194,7 @@ class IHMUserWSManagerClass
194 194 foreach ($req_data_json["tabs"] as $tab) {
195 195 $new_splitted_request = array_merge(array(), $tab);
196 196 foreach (array_keys($req_data_json) as $key) {
197   - if (in_array($key, array('tabs', 'startDate', 'stopDate', 'durationDay', 'durationHour', 'durationMin', 'durationSec'))) {
  197 + if (in_array($key, array('tabs', 'startDate', 'stopDate', 'durationDay', 'durationHour', 'durationMin', 'durationSec', 'durationMs'))) {
198 198 continue;
199 199 }
200 200 $new_splitted_request[$key] = $req_data_json[$key];
... ...
src/InputOutput/WSImpl/Params/DownloadImpl/WSInputOutputParamsDownloadClass.php
... ... @@ -165,10 +165,8 @@ class WSInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClass
165 165 $timesNode = $requestNodes[$requestIndex]->getTimesNode();
166 166  
167 167 date_default_timezone_set('UTC');
168   - $timeStamp = strtotime($input->startDate);
169   - $start = CommonClass::timeStampToDDTime($timeStamp);
170   - $timeStamp = strtotime($input->stopDate) - strtotime($input->startDate);
171   - $duration = CommonClass::timeStampToDDTime($timeStamp);
  168 + $start = CommonClass::strTimeToDDTime($input->startDate);
  169 + $duration = CommonClass::getDurationDDTime($input->stopDate, $input->startDate);
172 170 $timesNode->addInterval($start, $duration);
173 171 }
174 172  
... ...