Skip to content

Commit

Permalink
migrated to Electron 10.1.5
Browse files Browse the repository at this point in the history
  • Loading branch information
mvladic committed Nov 6, 2020
1 parent 001db20 commit 014a0d9
Show file tree
Hide file tree
Showing 8 changed files with 13,734 additions and 105 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Expand Up @@ -24,6 +24,4 @@ TODO.txt

.DS_Store

package-lock.json

builder-output
13,635 changes: 13,635 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/eez-studio-shared/service.ts
Expand Up @@ -136,7 +136,7 @@ if (isRenderer()) {
nodeIntegration: true,
enableRemoteModule: true
},
show: true
show: false
};
let browserWindow = new BrowserWindow(windowContructorParams);
browserWindow.loadURL(`file://${__dirname}/../eez-studio-shared/service.html`);
Expand Down
75 changes: 75 additions & 0 deletions packages/instrument/connection/file-type-utils.ts
@@ -0,0 +1,75 @@
import * as I10nModule from "eez-studio-shared/i10n";
import { decodeDlog } from "instrument/window/waveform/dlog-file";

export function convertDlogToCsv(data: Uint8Array) {
const dlog = decodeDlog(data);
if (!dlog) {
return undefined;
}

const buffer = Buffer.allocUnsafe(4);

function readFloat(i: number) {
buffer[0] = data[i];
buffer[1] = data[i + 1];
buffer[2] = data[i + 2];
buffer[3] = data[i + 3];
return buffer.readFloatLE(0);
}

const numColumns = (dlog.hasJitterColumn ? 1 : 0) + dlog.yAxes.length;

const { getLocale } = require("eez-studio-shared/i10n") as typeof I10nModule;

const locale = getLocale();

// determine CSV separator depending of locale usage of ","
let separator;
if ((0.1).toLocaleString(locale).indexOf(",") != -1) {
separator = ";";
} else {
separator = ",";
}

const numberFormat = new Intl.NumberFormat(locale, {
useGrouping: false,
maximumFractionDigits: 9
});

// first row contains column names
let csv = "";

if (dlog.xAxis.label) {
csv += dlog.xAxis.label;
} else {
csv += dlog.xAxis.unit.name;
}

for (let columnIndex = 0; columnIndex < dlog.yAxes.length; columnIndex++) {
csv += separator;
if (dlog.yAxes[columnIndex].label) {
csv += dlog.yAxes[columnIndex].label;
} else {
csv += dlog.yAxes[columnIndex].unit.name;
}
}

csv += "\n";

//
for (let rowIndex = 0; rowIndex < dlog.length; rowIndex++) {
csv += numberFormat.format(rowIndex * dlog.xAxis.step);
for (let columnIndex = 0; columnIndex < dlog.yAxes.length; columnIndex++) {
csv += separator;
csv += numberFormat.format(
readFloat(
dlog.dataOffset +
4 * (rowIndex * numColumns + (dlog.hasJitterColumn ? 1 : 0) + columnIndex)
)
);
}
csv += "\n";
}

return Buffer.from(csv, "utf8");
}
21 changes: 19 additions & 2 deletions packages/instrument/connection/file-type.ts
Expand Up @@ -4,10 +4,10 @@ const fileType = require("file-type");

import { getFileNameExtension } from "eez-studio-shared/util-electron";
import { UNITS, PREFIXES } from "eez-studio-shared/units";
import { IActivityLogEntry } from "eez-studio-shared/activity-log";

import { FileState } from "instrument/connection/file-state";

import { isDlog } from "instrument/window/waveform/dlog-file";
import { decodeDlog } from "instrument/window/waveform/dlog-file";

export const SAMPLE_LENGTH = 4096;

Expand Down Expand Up @@ -264,3 +264,20 @@ export function extractColumnFromCSVHeuristically(data: string | Buffer) {
label: label
};
}

export function isDlog(dataSample: Uint8Array) {
const dlog = decodeDlog(dataSample);
if (dlog) {
return {
ext: "dlog",
mime: MIME_EEZ_DLOG,
comment: dlog.comment
};
}

return undefined;
}

export function isDlogWaveform(activityLogEntry: IActivityLogEntry) {
return checkMime(activityLogEntry.message, [MIME_EEZ_DLOG]);
}
7 changes: 3 additions & 4 deletions packages/instrument/window/history/item-factory.ts
@@ -1,8 +1,9 @@
import { IActivityLogEntry } from "eez-studio-shared/activity-log";

import * as FileTypeModule from "instrument/connection/file-type";

import * as GenericWaveformModule from "instrument/window/waveform/generic";
import * as MultiWaveformModule from "instrument/window/waveform/multi";
import * as DlogFileModule from "instrument/window/waveform/dlog-file";
import * as DlogWaveformModule from "instrument/window/waveform/dlog";

import { IHistoryItem, HistoryItem } from "instrument/window/history/item";
Expand Down Expand Up @@ -31,9 +32,7 @@ function getFileSpecializationItem(activityLogEntry: IActivityLogEntry, appStore
return new ListHistoryItem(activityLogEntry, appStore);
}

const {
isDlogWaveform
} = require("instrument/window/waveform/dlog-file") as typeof DlogFileModule;
const { isDlogWaveform } = require("instrument/connection/file-type") as typeof FileTypeModule;

const {
DlogWaveform
Expand Down
2 changes: 1 addition & 1 deletion packages/instrument/window/history/items/file.tsx
Expand Up @@ -41,7 +41,7 @@ import { HistoryItemPreview } from "instrument/window/history/item-preview";

import { Waveform, convertToCsv } from "instrument/window/waveform/generic";
import { DlogWaveform } from "instrument/window/waveform/dlog";
import { convertDlogToCsv } from "instrument/window/waveform/dlog-file";
import { convertDlogToCsv } from "instrument/connection/file-type-utils";
import { PreventDraggable } from "instrument/window/history/helper";

////////////////////////////////////////////////////////////////////////////////
Expand Down
95 changes: 0 additions & 95 deletions packages/instrument/window/waveform/dlog-file.ts
@@ -1,4 +1,3 @@
import { IActivityLogEntry } from "eez-studio-shared/activity-log";
import {
IUnit,
TIME_UNIT,
Expand All @@ -9,10 +8,6 @@ import {
UNITS
} from "eez-studio-shared/units";

import * as I10nModule from "eez-studio-shared/i10n";

import { MIME_EEZ_DLOG, checkMime } from "instrument/connection/file-type";

////////////////////////////////////////////////////////////////////////////////

enum Fields {
Expand Down Expand Up @@ -373,93 +368,3 @@ export function decodeDlog(data: Uint8Array): IDlog | undefined {
hasJitterColumn
};
}

export function isDlog(dataSample: Uint8Array) {
const dlog = decodeDlog(dataSample);
if (dlog) {
return {
ext: "dlog",
mime: MIME_EEZ_DLOG,
comment: dlog.comment
};
}

return undefined;
}

export function convertDlogToCsv(data: Uint8Array) {
const dlog = decodeDlog(data);
if (!dlog) {
return undefined;
}

const buffer = Buffer.allocUnsafe(4);

function readFloat(i: number) {
buffer[0] = data[i];
buffer[1] = data[i + 1];
buffer[2] = data[i + 2];
buffer[3] = data[i + 3];
return buffer.readFloatLE(0);
}

const numColumns = (dlog.hasJitterColumn ? 1 : 0) + dlog.yAxes.length;

const { getLocale } = require("eez-studio-shared/i10n") as typeof I10nModule;

const locale = getLocale();

// determine CSV separator depending of locale usage of ","
let separator;
if ((0.1).toLocaleString(locale).indexOf(",") != -1) {
separator = ";";
} else {
separator = ",";
}

const numberFormat = new Intl.NumberFormat(locale, {
useGrouping: false,
maximumFractionDigits: 9
});

// first row contains column names
let csv = "";

if (dlog.xAxis.label) {
csv += dlog.xAxis.label;
} else {
csv += dlog.xAxis.unit.name;
}

for (let columnIndex = 0; columnIndex < dlog.yAxes.length; columnIndex++) {
csv += separator;
if (dlog.yAxes[columnIndex].label) {
csv += dlog.yAxes[columnIndex].label;
} else {
csv += dlog.yAxes[columnIndex].unit.name;
}
}

csv += "\n";

//
for (let rowIndex = 0; rowIndex < dlog.length; rowIndex++) {
csv += numberFormat.format(rowIndex * dlog.xAxis.step);
for (let columnIndex = 0; columnIndex < dlog.yAxes.length; columnIndex++) {
csv += separator;
csv += numberFormat.format(
readFloat(
dlog.dataOffset +
4 * (rowIndex * numColumns + (dlog.hasJitterColumn ? 1 : 0) + columnIndex)
)
);
}
csv += "\n";
}

return Buffer.from(csv, "utf8");
}

export function isDlogWaveform(activityLogEntry: IActivityLogEntry) {
return checkMime(activityLogEntry.message, [MIME_EEZ_DLOG]);
}

0 comments on commit 014a0d9

Please sign in to comment.