@opendisplay/opendisplay 1.1.3 → 1.1.5

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 CHANGED
@@ -1744,6 +1744,7 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
1744
1744
  const onProgress = options.onProgress;
1745
1745
  const onStatusChange = options.onStatusChange;
1746
1746
  const onUploadComplete = options.onUploadComplete;
1747
+ const onComplete = options.onComplete;
1747
1748
  console.log(
1748
1749
  `Uploading image (${this.width}x${this.height}, ${import_epaper_dithering4.ColorScheme[this.colorScheme]})`
1749
1750
  );
@@ -1770,7 +1771,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
1770
1771
  uncompressedSize: encodedData.length,
1771
1772
  onProgress,
1772
1773
  onStatusChange,
1773
- onUploadComplete
1774
+ onUploadComplete,
1775
+ onComplete
1774
1776
  });
1775
1777
  } else {
1776
1778
  console.log(
@@ -1782,7 +1784,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
1782
1784
  refreshMode,
1783
1785
  onProgress,
1784
1786
  onStatusChange,
1785
- onUploadComplete
1787
+ onUploadComplete,
1788
+ onComplete
1786
1789
  });
1787
1790
  }
1788
1791
  } else {
@@ -1793,7 +1796,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
1793
1796
  refreshMode,
1794
1797
  onProgress,
1795
1798
  onStatusChange,
1796
- onUploadComplete
1799
+ onUploadComplete,
1800
+ onComplete
1797
1801
  });
1798
1802
  }
1799
1803
  console.log("Image upload complete");
@@ -1811,7 +1815,8 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
1811
1815
  uncompressedSize,
1812
1816
  onProgress,
1813
1817
  onStatusChange,
1814
- onUploadComplete
1818
+ onUploadComplete,
1819
+ onComplete
1815
1820
  } = params;
1816
1821
  this.connection.clearQueue();
1817
1822
  const uploadStartTime = Date.now();
@@ -1862,6 +1867,36 @@ var OpenDisplayDevice = class _OpenDisplayDevice {
1862
1867
  onStatusChange?.(
1863
1868
  `Refresh complete (${refreshTime.toFixed(1)}s)`
1864
1869
  );
1870
+ onComplete?.(uploadTime, refreshTime, totalTime);
1871
+ } else if (responseCode === 116 /* REFRESH_TIMEOUT */) {
1872
+ throw new ProtocolError("Display refresh timed out");
1873
+ } else {
1874
+ throw new ProtocolError(
1875
+ `Unexpected refresh response: 0x${responseCode.toString(16).padStart(4, "0")}`
1876
+ );
1877
+ }
1878
+ } else {
1879
+ const uploadTime = (Date.now() - uploadStartTime) / 1e3;
1880
+ onUploadComplete?.(uploadTime);
1881
+ onStatusChange?.(
1882
+ `Upload complete (${uploadTime.toFixed(1)}s), refreshing display...`
1883
+ );
1884
+ console.log(`Auto-completed upload in ${uploadTime.toFixed(1)}s, waiting for refresh...`);
1885
+ const refreshStartTime = Date.now();
1886
+ const refreshResponse = await this.connection.readResponse(
1887
+ _OpenDisplayDevice.TIMEOUT_REFRESH
1888
+ );
1889
+ const [responseCode] = checkResponseType(refreshResponse);
1890
+ if (responseCode === 115 /* REFRESH_COMPLETE */) {
1891
+ const refreshTime = (Date.now() - refreshStartTime) / 1e3;
1892
+ const totalTime = (Date.now() - uploadStartTime) / 1e3;
1893
+ console.log(
1894
+ `Refresh complete (${refreshTime.toFixed(1)}s), total time: ${totalTime.toFixed(1)}s`
1895
+ );
1896
+ onStatusChange?.(
1897
+ `Refresh complete (${refreshTime.toFixed(1)}s)`
1898
+ );
1899
+ onComplete?.(uploadTime, refreshTime, totalTime);
1865
1900
  } else if (responseCode === 116 /* REFRESH_TIMEOUT */) {
1866
1901
  throw new ProtocolError("Display refresh timed out");
1867
1902
  } else {