DELL
2024-12-23 fed0a447df51e633ab6453261dc6e3d8a906d4a2
src/main/java/com/whyc/fbo/FboDataInf.java
@@ -1,87 +1,21 @@
package com.whyc.fbo;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Data
public class FboDataInf {
   public static final int DataType_Dis    = 0xFD;         //放电
   public static final int DataType_Char    = 0xFC;         //充电
   public static final int DataType_Peac    = 0xFB;         //常规
   public List<FboData> fboData;
   public FboDataHeadStart fboDataStart;
   public FboDataHeadStop fboDataStop;
   public FboDataInf() {
      fboData = new ArrayList<FboData>();
      fboDataStart = new FboDataHeadStart();
      fboDataStop = new FboDataHeadStop();
   }
   public void readFboFile(String filePath)
   {
       FileInputStream fis = null;
       try {
          File f = new File(filePath);
          if(!f.exists()) {
             System.out.println("文件不存在..........");
          }
         fis = new FileInputStream(f);
         byte[] buf = new byte[256];
           if(fis.read(buf, 0, buf.length) == 256)
           {
              this.fboDataStart.setDataInf(buf,this.fboDataStop);
              FboData.DataType mType = new FboData().new DataType();
              while(true)
              {
                 int tag = mType.checkDataHead(fis);
                 if((0xFD == tag) || (0xFC == tag) || (0xFB == tag))
                 {
                    byte[] databuf = new byte[this.fboDataStart.BattGroup*14 + 40];
                    if(fis.read(databuf) == databuf.length)
                    {
                       FboData m_FboData = new FboData(this.fboDataStart.BattGroup);
                       m_FboData.m_DataType = mType.clone();
                       m_FboData.setData(databuf);
                       fboData.add(m_FboData);
                    }
                 }
                 if(tag == 1)
                    break;
              }
           }
      } catch (IOException e) {
         e.printStackTrace();
         //log.error(e.toString());
      } finally {
         if(null != fis)
         {
            try {
               fis.close();
            } catch (IOException e) {
               e.printStackTrace();
               //log.error(e.toString());
            }
         }
      }
   }
   public static void main(String[] args) {
      FboDataInf fbo = new FboDataInf();
      //fbo.readFboFile("D:/test/F2022-03-09 11.26.12.FBX");
      //fbo.readFboFile("D:/test/F2022-03-09 16.22.37.FBX");
      //fbo.readFboFile("D:/test/F2022-03-10 11.12.30.FBX");
      fbo.readFboFile("C:\\Users\\Administrator\\Desktop\\F2022-05-09 10.45.12.FBX");
   }
}