whyclxw
2024-09-24 3c3e7b9d7afec5eea925a42f09a9c9b7ca4b5f0d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
67
68
69
70
71
72
73
74
75
package com.whyc.service;
 
import com.whyc.mcp.*;
import com.whyc.util.StaticInf;
import org.springframework.stereotype.Service;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
 
@Service
public class TestDataInfoService {
 
    //mch/mcp解析
    public TestDataInfo readFileData(String filePath) {
        TestDataInfo testDataInfo=new TestDataInfo();
        int parse_result = StaticInf.PARSE_RESULT_NULL;;
        FileInputStream fis = null;
        try {
            File f = new File(filePath);
            if((!filePath.endsWith(".MCP") && !filePath.endsWith(".mcp")) && (!filePath.endsWith(".MCH") && !filePath.endsWith(".mch"))) {
                parse_result = StaticInf.PARSE_RESULT_FILETYPEERR;
            }
            if(!f.exists()) {
                parse_result =StaticInf. PARSE_RESULT_NOTFOUNDFILE;
            }
            fis = new FileInputStream(f);
            byte[] buf = new byte[MonitorDataInfo.BYTE_LEN];
            if(fis.read(buf, 0, buf.length) == MonitorDataInfo.BYTE_LEN)
            {
                if(testDataInfo.monitorDataInfo.setHeadData(buf)) {
                    parse_result = StaticInf.PARSE_RESULT_SUCCESS;
                }else {
                    parse_result = StaticInf.PARSE_RESULT_FILEERROR;
                }
                while(true)
                {
                    if(testDataInfo.monitorDataInfo.checkDataHead(fis))
                    {
                        int bufLength=FBSData.BYTE_LEN - MVolData.BYTE_LEN +(testDataInfo.monitorDataInfo.battparam.eachGroupBattCount*testDataInfo.monitorDataInfo.battparam.battGroupCount)*2;
                        byte[] databuf = new byte[bufLength];
                        if(fis.read(databuf) == databuf.length)
                        {
                            FBSData fbsData = new FBSData(testDataInfo.monitorDataInfo.monitorstate.testType);
                            if(fbsData.setData(databuf)) {
                                testDataInfo.fbsDatas.add(fbsData);
                            }
                        }
                    }
                    if(fis.available() <1) {
                        break;
 
                    }
                }
            }else {
                parse_result = StaticInf.PARSE_RESULT_FILEERROR;
            }
 
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(null != fis)
            {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        testDataInfo.setFile_type(testDataInfo.monitorDataInfo.monitorstate.testType);
        testDataInfo.setParse_result(parse_result);
        return testDataInfo;
    }
}