node-djiparsetxt
Version:
command-line application that reads a DJI '.txt' file and outputs a json.
82 lines • 3.76 kB
JavaScript
;
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