<?php

require_once dirname(__FILE__) . '/../../Phpmodbus/ModbusMasterUdp.php';

// Received bytes interpreting Mixed values
$data = Array (
    "0" => 0, 
    "1" => 1,
    "2" => -1,
    "3" => pow(2,15)-1,
    "4" => -pow(2,15)
);

function byte2hex($value){
  $h = dechex(($value >> 4) & 0x0F);
  $l = dechex($value & 0x0F);
  return "$h$l";
}
  
function printPacket($packet){
  $str = "";   
  $str .= "Packet: "; 
  for($i=0;$i<strlen($packet);$i++){    
    $str .= byte2hex(ord($packet[$i]));
    if($i % 2)
      $str .= "_";
  }
  $str .= "</br>";
  return $str;
}

echo "Endianing off <hr>";
// Print mixed values
for($i=0;$i<count($data);$i++) {
  echo $data[$i] . " --> ";
  $v = IecType::iecINT($data[$i], 0);
  echo printPacket($v);
  "<br>";
}

echo "Endianing on <hr>";
// Print mixed values
for($i=0;$i<count($data);$i++) {
  echo $data[$i] . " --> ";
  $v = IecType::iecINT($data[$i], 1);
  echo printPacket($v);
  "<br>";
}
 
?>