@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.cjs
CHANGED
|
@@ -306,6 +306,8 @@ var CommandCode = /* @__PURE__ */ ((CommandCode3) => {
|
|
|
306
306
|
CommandCode3[CommandCode3["DIRECT_WRITE_START"] = 112] = "DIRECT_WRITE_START";
|
|
307
307
|
CommandCode3[CommandCode3["DIRECT_WRITE_DATA"] = 113] = "DIRECT_WRITE_DATA";
|
|
308
308
|
CommandCode3[CommandCode3["DIRECT_WRITE_END"] = 114] = "DIRECT_WRITE_END";
|
|
309
|
+
CommandCode3[CommandCode3["REFRESH_COMPLETE"] = 115] = "REFRESH_COMPLETE";
|
|
310
|
+
CommandCode3[CommandCode3["REFRESH_TIMEOUT"] = 116] = "REFRESH_TIMEOUT";
|
|
309
311
|
return CommandCode3;
|
|
310
312
|
})(CommandCode || {});
|
|
311
313
|
|
|
@@ -1741,6 +1743,7 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1741
1743
|
const compress = options.compress ?? true;
|
|
1742
1744
|
const onProgress = options.onProgress;
|
|
1743
1745
|
const onStatusChange = options.onStatusChange;
|
|
1746
|
+
const onUploadComplete = options.onUploadComplete;
|
|
1744
1747
|
console.log(
|
|
1745
1748
|
`Uploading image (${this.width}x${this.height}, ${import_epaper_dithering4.ColorScheme[this.colorScheme]})`
|
|
1746
1749
|
);
|
|
@@ -1766,7 +1769,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1766
1769
|
compressedData,
|
|
1767
1770
|
uncompressedSize: encodedData.length,
|
|
1768
1771
|
onProgress,
|
|
1769
|
-
onStatusChange
|
|
1772
|
+
onStatusChange,
|
|
1773
|
+
onUploadComplete
|
|
1770
1774
|
});
|
|
1771
1775
|
} else {
|
|
1772
1776
|
console.log(
|
|
@@ -1777,7 +1781,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1777
1781
|
imageData: encodedData,
|
|
1778
1782
|
refreshMode,
|
|
1779
1783
|
onProgress,
|
|
1780
|
-
onStatusChange
|
|
1784
|
+
onStatusChange,
|
|
1785
|
+
onUploadComplete
|
|
1781
1786
|
});
|
|
1782
1787
|
}
|
|
1783
1788
|
} else {
|
|
@@ -1787,7 +1792,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1787
1792
|
imageData: encodedData,
|
|
1788
1793
|
refreshMode,
|
|
1789
1794
|
onProgress,
|
|
1790
|
-
onStatusChange
|
|
1795
|
+
onStatusChange,
|
|
1796
|
+
onUploadComplete
|
|
1791
1797
|
});
|
|
1792
1798
|
}
|
|
1793
1799
|
console.log("Image upload complete");
|
|
@@ -1804,9 +1810,11 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1804
1810
|
compressedData,
|
|
1805
1811
|
uncompressedSize,
|
|
1806
1812
|
onProgress,
|
|
1807
|
-
onStatusChange
|
|
1813
|
+
onStatusChange,
|
|
1814
|
+
onUploadComplete
|
|
1808
1815
|
} = params;
|
|
1809
1816
|
this.connection.clearQueue();
|
|
1817
|
+
const uploadStartTime = Date.now();
|
|
1810
1818
|
let startCmd;
|
|
1811
1819
|
let remainingCompressed = null;
|
|
1812
1820
|
if (useCompression && compressedData && uncompressedSize) {
|
|
@@ -1829,13 +1837,38 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
|
|
|
1829
1837
|
autoCompleted = await this.sendDataChunks(imageData, onProgress, onStatusChange);
|
|
1830
1838
|
}
|
|
1831
1839
|
if (!autoCompleted) {
|
|
1832
|
-
onStatusChange?.("Refreshing display...");
|
|
1833
1840
|
const endCmd = buildDirectWriteEndCommand(refreshMode);
|
|
1834
1841
|
await this.connection.writeCommand(endCmd);
|
|
1835
1842
|
response = await this.connection.readResponse(
|
|
1836
|
-
_OpenDisplayDevice.
|
|
1843
|
+
_OpenDisplayDevice.TIMEOUT_ACK
|
|
1837
1844
|
);
|
|
1838
1845
|
validateAckResponse(response, 114 /* DIRECT_WRITE_END */);
|
|
1846
|
+
const uploadTime = (Date.now() - uploadStartTime) / 1e3;
|
|
1847
|
+
onUploadComplete?.(uploadTime);
|
|
1848
|
+
onStatusChange?.(
|
|
1849
|
+
`Upload complete (${uploadTime.toFixed(1)}s), refreshing display...`
|
|
1850
|
+
);
|
|
1851
|
+
const refreshStartTime = Date.now();
|
|
1852
|
+
const refreshResponse = await this.connection.readResponse(
|
|
1853
|
+
_OpenDisplayDevice.TIMEOUT_REFRESH
|
|
1854
|
+
);
|
|
1855
|
+
const [responseCode] = checkResponseType(refreshResponse);
|
|
1856
|
+
if (responseCode === 115 /* REFRESH_COMPLETE */) {
|
|
1857
|
+
const refreshTime = (Date.now() - refreshStartTime) / 1e3;
|
|
1858
|
+
const totalTime = (Date.now() - uploadStartTime) / 1e3;
|
|
1859
|
+
console.log(
|
|
1860
|
+
`Refresh complete (${refreshTime.toFixed(1)}s), total time: ${totalTime.toFixed(1)}s`
|
|
1861
|
+
);
|
|
1862
|
+
onStatusChange?.(
|
|
1863
|
+
`Refresh complete (${refreshTime.toFixed(1)}s)`
|
|
1864
|
+
);
|
|
1865
|
+
} else if (responseCode === 116 /* REFRESH_TIMEOUT */) {
|
|
1866
|
+
throw new ProtocolError("Display refresh timed out");
|
|
1867
|
+
} else {
|
|
1868
|
+
throw new ProtocolError(
|
|
1869
|
+
`Unexpected refresh response: 0x${responseCode.toString(16).padStart(4, "0")}`
|
|
1870
|
+
);
|
|
1871
|
+
}
|
|
1839
1872
|
}
|
|
1840
1873
|
}
|
|
1841
1874
|
/**
|