<?php
function _ma01dl_ShowAlert(&$dataArray, $label, $value, $vsValue)
{
    $dataArray[$label] = $value == $vsValue ? '正常' : '告警';
    $dataArray['AlertArray'][$label] = $value != $vsValue;
}

function _ma01dl_Inline(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("S*" , $memData);
      
        $name = $prefix.sprintf("%s路进线-电压", strval($index));
          $dataArray[$name]  = ($v[1] << 16 + $v[2])/100;
      
        $name = $prefix.sprintf("%s路路进线-电流", strval($index));
          $dataArray[$name]  = ($v[3] << 16 + $v[4])/100;
      
        $name = $prefix.sprintf("%s路进线-有功功率", strval($index));
          $dataArray[$name]  = ($v[5] << 16 + $v[6])/1000;
      
        $name = $prefix.sprintf("%s路进线-有功电能", strval($index));
          $dataArray[$name]  = ($v[7] << 16 + $v[8])/10/1000;
      
        $name = $prefix.sprintf("%s路进线-电流负载比", strval($index));
          $dataArray[$name]  = ($v[13] << 16 + $v[14])/100;
}
function _ma01dl_Feeder(&$dataArray, $memData, $prefix, $index ,$index1 ,$index2)
{
    $offset = 0;
      $v = unpack("S*" , $memData);
      
        $name = $prefix.sprintf("%s电压", strval($index));
          $dataArray[$name]  = ($v[1] << 16 + $v[2])/100;
      
        $name = $prefix.sprintf("%s电压", strval($index1));
          $dataArray[$name]  = ($v[3] << 16 + $v[4])/100;
      
        $name = $prefix.sprintf("%s电压", strval($index2));
          $dataArray[$name]  = ($v[5] << 16 + $v[6])/100;
      
        $name = $prefix.sprintf("%s电流", strval($index));
          $dataArray[$name]  = ($v[7] << 16 + $v[8])/100;
      
        $name = $prefix.sprintf("%s电流", strval($index1));
          $dataArray[$name]  = ($v[9] << 16 + $v[10])/100;
      
        $name = $prefix.sprintf("%s电流", strval($index2));
          $dataArray[$name]  = ($v[11] << 16 + $v[12])/100;
      
        $name = $prefix.sprintf("%s有功功率", strval($index));
          $dataArray[$name]  = ($v[19] << 16 + $v[20])/1000;
      
        $name = $prefix.sprintf("%s有功功率", strval($index1));
          $dataArray[$name]  = ($v[21] << 16 + $v[22])/1000;
      
        $name = $prefix.sprintf("%s有功功率", strval($index2));
          $dataArray[$name]  = ($v[23] << 16 + $v[24])/1000;
      
        $name = $prefix.sprintf("%s有功电能", strval($index));
          $dataArray[$name]  = ($v[25] << 16 + $v[26])/10;
      
        $name = $prefix.sprintf("%s有功电能", strval($index1));
          $dataArray[$name]  = ($v[27] << 16 + $v[28])/10;
      
        $name = $prefix.sprintf("%s有功电能", strval($index2));
          $dataArray[$name]  = ($v[29] << 16 + $v[30])/10;
      
        $name = $prefix.sprintf("%s电流负载比", strval($index));
          $dataArray[$name]  = ($v[31] << 16 + $v[32])/10;
      
        $name = $prefix.sprintf("%s电流负载比", strval($index1));
          $dataArray[$name]  = ($v[33] << 16 + $v[34])/10;
      
        $name = $prefix.sprintf("%s电流负载比", strval($index2));
          $dataArray[$name]  = ($v[35] << 16 + $v[36])/10;
}
function _ma01dl_ASwitchStatus(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("S*" , $memData);
      
        $name = $prefix.sprintf("A%s开关状态", strval($index));
          switch($v[1]){
            case 0:
            $dataArray[$name] = "正常";
              break;
            case 1:
            $dataArray[$name] = "告警";
              break;
            case 2:
            $dataArray[$name] = "空闲";
              break;
            case 3:
            $dataArray[$name] = "分闸";
              break;
            default:
              $dataArray[$name] = "无效值";
              break;
          }
}
function _ma01dl_BSwitchStatus(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("S*" , $memData);
      
        $name = $prefix.sprintf("B%s开关状态", strval($index));
          switch($v[1]){
            case 0:
            $dataArray[$name] = "正常";
              break;
            case 1:
            $dataArray[$name] = "告警";
              break;
            case 2:
            $dataArray[$name] = "空闲";
              break;
            case 3:
            $dataArray[$name] = "分闸";
              break;
            default:
              $dataArray[$name] = "无效值";
              break;
          }
}
function _ma01dl_TempNode(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("S*" , $memData);
      
        $name = $prefix.sprintf("节点%s温度", strval($index));
          $dataArray[$name] = number_format($v[1]/10, 2)."%";
}
function _ma01dl_FeederSwitchAlert(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("C*" , $memData);
      
        $name = $prefix.sprintf("%s开关告警", strval($index));
          _ma01dl_ShowAlert($dataArray, $name, $v[1], 0);
}
function _ma01dl_FeederCurrentHAlert(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("C*" , $memData);
      
        $name = $prefix.sprintf("%s电流越上线", strval($index));
          _ma01dl_ShowAlert($dataArray, $name, $v[1], 0);
}
function _ma01dl_FeederCurrentHHAlert(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("C*" , $memData);
      
        $name = $prefix.sprintf("%s电流越上上线", strval($index));
          _ma01dl_ShowAlert($dataArray, $name, $v[1], 0);
}
function _ma01dl_FeederSwitchOpenAlert(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("C*" , $memData);
      
        $name = $prefix.sprintf("%s开关分闸", strval($index));
          _ma01dl_ShowAlert($dataArray, $name, $v[1], 0);
}
function _ma01dl_NodeTempAlert(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("C*" , $memData);
      
        $name = $prefix.sprintf("节点%s温度越限", strval($index));
          _ma01dl_ShowAlert($dataArray, $name, $v[1], 0);
}
function _ma01dl_FeederCurrentLAlert(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("C*" , $memData);
      
        $name = $prefix.sprintf("%s电流越下限", strval($index));
          _ma01dl_ShowAlert($dataArray, $name, $v[1], 0);
}
function _ma01dl_FeederCurrentLLAlert(&$dataArray, $memData, $prefix, $index  )
{
    $offset = 0;
      $v = unpack("C*" , $memData);
      
        $name = $prefix.sprintf("%s电流越下下限", strval($index));
          _ma01dl_ShowAlert($dataArray, $name, $v[1], 0);
}

function Get_ma01dl_RtData($memData, &$dataArray, $extraPara = false){
    if($memData == false){
        $dataArray['无数据'] = true;
        $dataArray['更新时间'] = '无';
        $dataArray['错误'] = '数据长度不一致';
    }else{
        $dataArray['无数据'] = false;
        $dataArray['AlertArray'] = array();
        $offset = 4;
            $v = unpack("S*" , substr($memData , $offset, 2*14));
$lMemData = substr($memData , $offset, 2*14);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 28);
      _ma01dl_Inline($dataArray, $lMemData, "",  "A"  );

      $offset += 28;

            $v = unpack("S*" , substr($memData , $offset, 2*14));
$lMemData = substr($memData , $offset, 2*14);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 28);
      _ma01dl_Inline($dataArray, $lMemData, "",  "B"  );

      $offset += 28;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A01" ,"A02","A03" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A04" ,"A05","A06" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A07" ,"A08","A09" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A10" ,"A11","A12" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B01" ,"B02","B03" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B04" ,"B05","B06" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B07" ,"B08","B09" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B10" ,"B11","B12" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A13" ,"A14","A15" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A16" ,"A17","A18" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A19" ,"A20","A21" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A22" ,"A23","A24" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B13" ,"B14","B15" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B16" ,"B17","B18" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B19" ,"B20","B21" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B22" ,"B23","B24" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A25" ,"A26","A27" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A28" ,"A29","A30" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A31" ,"A32","A33" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A34" ,"A35","A36" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B25" ,"B26","B27" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B28" ,"B29","B30" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B31" ,"B32","B33" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B34" ,"B35","B36" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A37" ,"A38","A39" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A40" ,"A41","A42" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A43" ,"A44","A45" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A46" ,"A47","A48" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B37" ,"B38","B39" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B40" ,"B41","B42" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B43" ,"B44","B45" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B46" ,"B47","B48" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A49" ,"A50","A51" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A52" ,"A53","A54" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A55" ,"A56","A57" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A58" ,"A59","A60" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B49" ,"B50","B51" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B52" ,"B53","B54" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B55" ,"B56","B57" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B58" ,"B59","B60" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A61" ,"A62","A63" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A64" ,"A65","A66" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A67" ,"A68","A69" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "A70" ,"A71","A72" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B61" ,"B62","B63" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B64" ,"B65","B66" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B67" ,"B68","B69" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*36));
$lMemData = substr($memData , $offset, 2*36);
      $lOffset = 0;
      
      $lMemData = substr($memData, $offset, 72);
      _ma01dl_Feeder($dataArray, $lMemData, "",  "B70" ,"B71","B72" );

      $offset += 72;

            $v = unpack("S*" , substr($memData , $offset, 2*7));
$lMemData = substr($memData , $offset, 2*7);
      $lOffset = 0;
      
        $dataArray["A路进线防雷器状态"] = number_format($v[1], 2);
      

      
        $dataArray["B路进线防雷器状态"] = number_format($v[2], 2);
      

      
        $dataArray["系统总告警状态"] = number_format($v[3], 2);
      

      
        switch($v[4]){
          case 0:
          $dataArray["A路进线总开关状态"] = "正常";
            break;
          case 1:
          $dataArray["A路进线总开关状态"] = "告警";
          $dataArray["AlertArray"]["A路进线总开关状态"] = 1;
            break;
          case 2:
          $dataArray["A路进线总开关状态"] = "空闲";
            break;
          case 3:
          $dataArray["A路进线总开关状态"] = "分闸";
            break;
          default:
            $dataArray["A路进线总开关状态"] = "无效值";
            break;
        }
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线防雷器状态", $v[5], 0);
      

      
        switch($v[6]){
          case 0:
          $dataArray["B路进线总开关状态"] = "正常";
            break;
          case 1:
          $dataArray["B路进线总开关状态"] = "告警";
          $dataArray["AlertArray"]["B路进线总开关状态"] = 1;
            break;
          case 2:
          $dataArray["B路进线总开关状态"] = "空闲";
            break;
          case 3:
          $dataArray["B路进线总开关状态"] = "分闸";
            break;
          default:
            $dataArray["B路进线总开关状态"] = "无效值";
            break;
        }
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线防雷器状态", $v[7], 0);
      

      $offset += 14;

            $v = unpack("S*" , substr($memData , $offset, 2*24));
$lMemData = substr($memData , $offset, 2*24);
      $lOffset = 0;
      
          for($i=1;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 2);            
            _ma01dl_ASwitchStatus($dataArray, $tMemData, "", $index + $i);
            $lOffset += 2;
          }

      $offset += 48;

            $v = unpack("S*" , substr($memData , $offset, 2*24));
$lMemData = substr($memData , $offset, 2*24);
      $lOffset = 0;
      
          for($i=1;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 2);            
            _ma01dl_BSwitchStatus($dataArray, $tMemData, "", $index + $i);
            $lOffset += 2;
          }

      $offset += 48;

            $v = unpack("S*" , substr($memData , $offset, 2*24));
$lMemData = substr($memData , $offset, 2*24);
      $lOffset = 0;
      
          for($i=25;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 2);            
            _ma01dl_ASwitchStatus($dataArray, $tMemData, "", $index + $i);
            $lOffset += 2;
          }

      $offset += 48;

            $v = unpack("S*" , substr($memData , $offset, 2*24));
$lMemData = substr($memData , $offset, 2*24);
      $lOffset = 0;
      
          for($i=25;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 2);            
            _ma01dl_BSwitchStatus($dataArray, $tMemData, "", $index + $i);
            $lOffset += 2;
          }

      $offset += 48;

            $v = unpack("S*" , substr($memData , $offset, 2*24));
$lMemData = substr($memData , $offset, 2*24);
      $lOffset = 0;
      
          for($i=49;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 2);            
            _ma01dl_ASwitchStatus($dataArray, $tMemData, "", $index + $i);
            $lOffset += 2;
          }

      $offset += 48;

            $v = unpack("S*" , substr($memData , $offset, 2*24));
$lMemData = substr($memData , $offset, 2*24);
      $lOffset = 0;
      
          for($i=49;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 2);            
            _ma01dl_BSwitchStatus($dataArray, $tMemData, "", $index + $i);
            $lOffset += 2;
          }

      $offset += 48;

            $v = unpack("S*" , substr($memData , $offset, 2*2));
$lMemData = substr($memData , $offset, 2*2);
      $lOffset = 0;
      
        $dataArray["环境温度"] = number_format($v[1]/10, 2)."℃";
      

      
        $dataArray["环境湿度"] = number_format($v[2]/10, 2)."%";
      

      $offset += 4;

            $v = unpack("S*" , substr($memData , $offset, 2*27));
$lMemData = substr($memData , $offset, 2*27);
          $lMemData = '';
          for($j=1;$j<=count($v);$j++)
          {
              for($k = 0; $k <8; $k++)
              {
                $lMemData .= pack("C", ($v[$j]>>$k)&0x1);
              }
          }
      $lOffset = 0;
      
          for($i=1;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=1;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=25;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=25;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=1;$i<=12;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=1;$i<=12;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=13;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=13;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=25;$i<=36;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=35;$i<=36;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=37;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=37;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=60;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=60;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=61;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=61;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=1;$i<=12;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=1;$i<=12;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=13;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=13;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=25;$i<=36;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=35;$i<=36;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=37;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=37;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=60;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=60;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=61;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=61;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederCurrentHHAlert($dataArray, $tMemData, "出线支路B", $index + $i);
            $lOffset += 1;
          }

      $offset += 54;

            $v = unpack("S*" , substr($memData , $offset, 2*5));
$lMemData = substr($memData , $offset, 2*5);
      $lOffset = 0;
      
        _ma01dl_ShowAlert($dataArray, "A路进线总开关开关告警", ($v[1] & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线防雷器失效告警", (($v[1]>>1) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线总开关开关告警", (($v[1]>>2) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线防雷器失效告警", (($v[1]>>3) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "进线总开关开关告警", (($v[1]>>6) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "进线防雷器失效告警", (($v[1]>>7) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线旁路开关开关告警", (($v[1]>>8) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线防雷器开关开关告警", (($v[1]>>9) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线旁路开关开关告警", (($v[1]>>10) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线防雷器开关开关告警", (($v[1]>>11) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "进线旁路开关告警", (($v[1]>>12) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "线防雷器开关告警", (($v[1]>>13) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线电流越上限", ($v[2] & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线电流越上限", (($v[2]>>1) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "进线电流越上限", (($v[2]>>2) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线电流越上上限", ($v[3] & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线电流越上上限", (($v[3]>>1) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "进线电流越上上限", (($v[3]>>2) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线电压过压", ($v[4] & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线电压过压", (($v[4]>>1) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "进线电压过压", (($v[4]>>2) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "A路进线电压欠压", ($v[5] & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "B路进线电压欠压", (($v[5]>>1) & 0x1), 0);
      

      
        _ma01dl_ShowAlert($dataArray, "进线电压欠压", (($v[5]>>2) & 0x1), 0);
      

      $offset += 10;

            $v = unpack("S*" , substr($memData , $offset, 2*10));
$lMemData = substr($memData , $offset, 2*10);
          $lMemData = '';
          for($j=1;$j<=count($v);$j++)
          {
              for($k = 0; $k <8; $k++)
              {
                $lMemData .= pack("C", ($v[$j]>>$k)&0x1);
              }
          }
      $lOffset = 0;
      
          for($i=1;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchOpenAlert($dataArray, $tMemData, "出线A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=1;$i<=24;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchOpenAlert($dataArray, $tMemData, "出线B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=25;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchOpenAlert($dataArray, $tMemData, "出线A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=25;$i<=48;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchOpenAlert($dataArray, $tMemData, "出线B", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchOpenAlert($dataArray, $tMemData, "出线A", $index + $i);
            $lOffset += 1;
          }

      
          for($i=49;$i<=72;$i++)
          {
            $tMemData = substr($lMemData, $lOffset, 1);            
            _ma01dl_FeederSwitchOpenAlert($dataArray, $tMemData, "出线B", $index + $i);
            $lOffset += 1;
          }

      $offset += 20;

        $v = unpack('v', substr($memData, $offset , 2));
        $year = $v[1];
        $v = unpack('C*', substr($memData, $offset + 2 , 5));
        $dataArray['更新时间'] = date('Y-m-d H:i:s', strtotime($year . '-' . $v[1] . '-' . $v[2] . ' ' . $v[3] . ':' . $v[4] . ':' . $v[5]));
    }
}

