@opendisplay/opendisplay 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +39 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +39 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -664,6 +664,7 @@ declare class OpenDisplayDevice {
|
|
|
664
664
|
compress?: boolean;
|
|
665
665
|
onProgress?: (current: number, total: number, stage: string) => void;
|
|
666
666
|
onStatusChange?: (message: string) => void;
|
|
667
|
+
onUploadComplete?: (uploadTimeSeconds: number) => void;
|
|
667
668
|
}): Promise<void>;
|
|
668
669
|
/**
|
|
669
670
|
* Execute image upload using compressed or uncompressed protocol.
|
package/dist/index.d.ts
CHANGED
|
@@ -664,6 +664,7 @@ declare class OpenDisplayDevice {
|
|
|
664
664
|
compress?: boolean;
|
|
665
665
|
onProgress?: (current: number, total: number, stage: string) => void;
|
|
666
666
|
onStatusChange?: (message: string) => void;
|
|
667
|
+
onUploadComplete?: (uploadTimeSeconds: number) => void;
|
|
667
668
|
}): Promise<void>;
|
|
668
669
|
/**
|
|
669
670
|
* Execute image upload using compressed or uncompressed protocol.
|
package/dist/index.js
CHANGED
|
@@ -250,6 +250,8 @@ var CommandCode = /* @__PURE__ */ ((CommandCode3) => {
|
|
|
250
250
|
CommandCode3[CommandCode3["DIRECT_WRITE_START"] = 112] = "DIRECT_WRITE_START";
|
|
251
251
|
CommandCode3[CommandCode3["DIRECT_WRITE_DATA"] = 113] = "DIRECT_WRITE_DATA";
|
|
252
252
|
CommandCode3[CommandCode3["DIRECT_WRITE_END"] = 114] = "DIRECT_WRITE_END";
|
|
253
|
+
CommandCode3[CommandCode3["REFRESH_COMPLETE"] = 115] = "REFRESH_COMPLETE";
|
|
254
|
+
CommandCode3[CommandCode3["REFRESH_TIMEOUT"] = 116] = "REFRESH_TIMEOUT";
|
|
253
255
|
return CommandCode3;
|
|
254
256
|
})(CommandCode || {});
|
|
255
257
|
|
|
@@ -1685,6 +1687,7 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1685
1687
|
const compress = options.compress ?? true;
|
|
1686
1688
|
const onProgress = options.onProgress;
|
|
1687
1689
|
const onStatusChange = options.onStatusChange;
|
|
1690
|
+
const onUploadComplete = options.onUploadComplete;
|
|
1688
1691
|
console.log(
|
|
1689
1692
|
`Uploading image (${this.width}x${this.height}, ${ColorScheme4[this.colorScheme]})`
|
|
1690
1693
|
);
|
|
@@ -1710,7 +1713,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1710
1713
|
compressedData,
|
|
1711
1714
|
uncompressedSize: encodedData.length,
|
|
1712
1715
|
onProgress,
|
|
1713
|
-
onStatusChange
|
|
1716
|
+
onStatusChange,
|
|
1717
|
+
onUploadComplete
|
|
1714
1718
|
});
|
|
1715
1719
|
} else {
|
|
1716
1720
|
console.log(
|
|
@@ -1721,7 +1725,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1721
1725
|
imageData: encodedData,
|
|
1722
1726
|
refreshMode,
|
|
1723
1727
|
onProgress,
|
|
1724
|
-
onStatusChange
|
|
1728
|
+
onStatusChange,
|
|
1729
|
+
onUploadComplete
|
|
1725
1730
|
});
|
|
1726
1731
|
}
|
|
1727
1732
|
} else {
|
|
@@ -1731,7 +1736,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1731
1736
|
imageData: encodedData,
|
|
1732
1737
|
refreshMode,
|
|
1733
1738
|
onProgress,
|
|
1734
|
-
onStatusChange
|
|
1739
|
+
onStatusChange,
|
|
1740
|
+
onUploadComplete
|
|
1735
1741
|
});
|
|
1736
1742
|
}
|
|
1737
1743
|
console.log("Image upload complete");
|
|
@@ -1748,9 +1754,11 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1748
1754
|
compressedData,
|
|
1749
1755
|
uncompressedSize,
|
|
1750
1756
|
onProgress,
|
|
1751
|
-
onStatusChange
|
|
1757
|
+
onStatusChange,
|
|
1758
|
+
onUploadComplete
|
|
1752
1759
|
} = params;
|
|
1753
1760
|
this.connection.clearQueue();
|
|
1761
|
+
const uploadStartTime = Date.now();
|
|
1754
1762
|
let startCmd;
|
|
1755
1763
|
let remainingCompressed = null;
|
|
1756
1764
|
if (useCompression && compressedData && uncompressedSize) {
|
|
@@ -1773,13 +1781,38 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1773
1781
|
autoCompleted = await this.sendDataChunks(imageData, onProgress, onStatusChange);
|
|
1774
1782
|
}
|
|
1775
1783
|
if (!autoCompleted) {
|
|
1776
|
-
onStatusChange?.("Refreshing display...");
|
|
1777
1784
|
const endCmd = buildDirectWriteEndCommand(refreshMode);
|
|
1778
1785
|
await this.connection.writeCommand(endCmd);
|
|
1779
1786
|
response = await this.connection.readResponse(
|
|
1780
|
-
_OpenDisplayDevice.
|
|
1787
|
+
_OpenDisplayDevice.TIMEOUT_ACK
|
|
1781
1788
|
);
|
|
1782
1789
|
validateAckResponse(response, 114 /* DIRECT_WRITE_END */);
|
|
1790
|
+
const uploadTime = (Date.now() - uploadStartTime) / 1e3;
|
|
1791
|
+
onUploadComplete?.(uploadTime);
|
|
1792
|
+
onStatusChange?.(
|
|
1793
|
+
`Upload complete (${uploadTime.toFixed(1)}s), refreshing display...`
|
|
1794
|
+
);
|
|
1795
|
+
const refreshStartTime = Date.now();
|
|
1796
|
+
const refreshResponse = await this.connection.readResponse(
|
|
1797
|
+
_OpenDisplayDevice.TIMEOUT_REFRESH
|
|
1798
|
+
);
|
|
1799
|
+
const [responseCode] = checkResponseType(refreshResponse);
|
|
1800
|
+
if (responseCode === 115 /* REFRESH_COMPLETE */) {
|
|
1801
|
+
const refreshTime = (Date.now() - refreshStartTime) / 1e3;
|
|
1802
|
+
const totalTime = (Date.now() - uploadStartTime) / 1e3;
|
|
1803
|
+
console.log(
|
|
1804
|
+
`Refresh complete (${refreshTime.toFixed(1)}s), total time: ${totalTime.toFixed(1)}s`
|
|
1805
|
+
);
|
|
1806
|
+
onStatusChange?.(
|
|
1807
|
+
`Refresh complete (${refreshTime.toFixed(1)}s)`
|
|
1808
|
+
);
|
|
1809
|
+
} else if (responseCode === 116 /* REFRESH_TIMEOUT */) {
|
|
1810
|
+
throw new ProtocolError("Display refresh timed out");
|
|
1811
|
+
} else {
|
|
1812
|
+
throw new ProtocolError(
|
|
1813
|
+
`Unexpected refresh response: 0x${responseCode.toString(16).padStart(4, "0")}`
|
|
1814
|
+
);
|
|
1815
|
+
}
|
|
1783
1816
|
}
|
|
1784
1817
|
}
|
|
1785
1818
|
/**
|