UNPKG

node-djiparsetxt

Version:

command-line application that reads a DJI '.txt' file and outputs a json.

82 lines 3.76 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileInfoService = void 0; var ServiceManager_1 = require("../common/ServiceManager"); var BaseService_1 = __importDefault(require("./BaseService")); var BinaryParserService_1 = require("./BinaryParserService"); var newHeaderSize = 100; var oldHeaderSize = 12; var FileInfoService = /** @class */ (function (_super) { __extends(FileInfoService, _super); function FileInfoService() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.name = "file_info"; return _this; } FileInfoService.prototype.get_header_info = function (buffer) { var parserService = this.serviceMan.get_service(ServiceManager_1.ServiceTypes.Parsers); var headerParser = parserService.get_parser(BinaryParserService_1.ParserTypes.Header); // get first 100 bytes and parse them. var header = headerParser.parse(buffer); var headerSize; if (header.file_version.ver[2] < 6) { headerSize = oldHeaderSize; } else { headerSize = newHeaderSize; } // calculate details var fileSize = buffer.length; var headerRecordsAreaSize = header.header_record_size_lo; var recordsAreaSize = headerRecordsAreaSize - headerSize; var detailsAreaSize = fileSize - headerRecordsAreaSize; // create version string var version = header.file_version; return { file_size: fileSize, header_size: headerSize, records_size: recordsAreaSize, details_size: detailsAreaSize, version: version, }; }; FileInfoService.prototype.get_records_info = function (buffer) { var fileParsingService = this.serviceMan.get_service(ServiceManager_1.ServiceTypes.FileParsing); return fileParsingService.parse_records(buffer).stats; }; FileInfoService.prototype.get_file_info = function (buffer) { var fileParsingService = this.serviceMan.get_service(ServiceManager_1.ServiceTypes.FileParsing); var headerInfo = this.get_header_info(buffer); var recordStats = fileParsingService.parse_records(buffer, headerInfo) .stats; return { header_info: headerInfo, records_info: recordStats }; }; FileInfoService.prototype.get_details = function (buffer) { var headerInfo = this.get_header_info(buffer); var detailsStart = headerInfo.header_size + headerInfo.records_size; var detailsBuf = buffer.slice(detailsStart); var parserService = this.serviceMan.get_service(ServiceManager_1.ServiceTypes.Parsers); var detailsParser = parserService.get_parser(BinaryParserService_1.ParserTypes.Details); var details = detailsParser.parse(detailsBuf); return details; }; return FileInfoService; }(BaseService_1.default)); exports.FileInfoService = FileInfoService; //# sourceMappingURL=FileInfoService.js.map