motion-master-client 0.0.421 → 0.0.423
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/package.json +1 -1
- package/src/api.js +47 -40
- package/src/api.js.map +1 -1
- package/src/lib/motion-master-req-res-client.d.ts +121 -28
- package/src/lib/motion-master-req-res-client.js +313 -195
- package/src/lib/motion-master-req-res-client.js.map +1 -1
- package/src/lib/os-command.d.ts +20 -0
- package/src/lib/os-command.js +62 -1
- package/src/lib/os-command.js.map +1 -1
- package/src/lib/smm.d.ts +34 -1
- package/src/lib/smm.js +50 -1
- package/src/lib/smm.js.map +1 -1
- package/src/lib/types.d.ts +40 -0
|
@@ -6,7 +6,7 @@ import { HardwareDescription, StackInfo } from './hardware-description';
|
|
|
6
6
|
import { MotionMasterReqResSocket } from './motion-master-req-res-socket';
|
|
7
7
|
import { UIFeaturesConfig } from './parameter';
|
|
8
8
|
import { SystemLogLine } from './system-log-line';
|
|
9
|
-
import { MotionMasterMessage, ParameterValueType, ParameterTypeValue, DeviceParameterValuesStatus, ParameterTypeValueKey, DeviceRefObj, DeviceRef, FullAutoTuningStatus, SystemVersionStatus, DeviceInfoStatus, DeviceParameterInfoStatus, GetDeviceParameterInfoRequest, GetDeviceParameterValuesRequest, GetMultiDeviceParameterValuesRequest, MultiDeviceParameterValuesStatus, SetDeviceParameterValuesRequest, SetMultiDeviceParameterValuesRequest, GetDeviceFileListRequest, DeviceFileListStatus, GetDeviceFileRequest, DeviceFileStatus, SetDeviceFileRequest, DeleteDeviceFileRequest, ResetDeviceFaultRequest, DeviceFaultResetStatus, StopDeviceRequest, DeviceStopStatus, StartDeviceFirmwareInstallationRequest, DeviceFirmwareInstallationStatus, GetDeviceLogRequest, DeviceLogStatus, StartCoggingTorqueRecordingRequest, CoggingTorqueRecordingStatus, GetCoggingTorqueDataRequest, CoggingTorqueDataStatus, StartOffsetDetectionRequest, OffsetDetectionStatus, StartPlantModelIdentificationRequest, PlantIdentificationStatus, ComputeAutoTuningGainsRequest, AutoTuningStatus, SetMotionControllerParametersRequest, MotionControllerStatus, EnableMotionControllerRequest, SetSignalGeneratorParametersRequest, SignalGeneratorStatus, StopSignalGeneratorRequest, StartMonitoringDeviceParameterValuesRequest, MonitoringParameterValuesStatus, StopMonitoringDeviceParameterValuesRequest, GetEthercatNetworkStateRequest, EthercatNetworkStateStatus, SetEthercatNetworkStateRequest, StartNarrowAngleCalibrationRequest, NarrowAngleCalibrationStatus, SetSystemClientTimeoutRequest, StartSystemIdentificationRequest, SystemIdentificationStatus, CirculoEncoderMagnetDistanceStatus, StartCirculoEncoderNarrowAngleCalibrationProcedureRequest, CirculoEncoderNarrowAngleCalibrationProcedureStatus, GetDeviceCiA402StateRequest, DeviceCiA402StateStatus, SetDeviceCiA402StateRequest, SystemLogStatus, StartDeviceSiiRestoreRequest, DeviceSiiRestoreStatus, StartOpenLoopFieldControlRequest, OpenLoopFieldControlStatus, ComputeFullAutoTuningGainsRequest, StartFullAutoTuningRequest, StopFullAutoTuningRequest, StartCirculoEncoderConfigurationRequest, CirculoEncoderConfigurationStatus, StopCirculoEncoderNarrowAngleCalibrationProcedureRequest, StartOsCommandRequest, OsCommandStatus, RestoreDefaultParametersType, DeviceParameterAddressValue, DeviceParameterIds, DeviceParameterInfo, RequestStatusMessage, UiPdoMapping, UiConfig, ExecuteForwardCallRequest, ForwardCallStatus, PlantModel, NotchFilter, LoadConfigStrategy, SystemInformationStatus, SetPdoModeRequest, PdoModeStatus, GetDeviceSiiRequest, DeviceSiiStatus, SmmAutomatedUpdate } from './types';
|
|
9
|
+
import { MotionMasterMessage, ParameterValueType, ParameterTypeValue, DeviceParameterValuesStatus, ParameterTypeValueKey, DeviceRefObj, DeviceRef, FullAutoTuningStatus, SystemVersionStatus, DeviceInfoStatus, DeviceParameterInfoStatus, GetDeviceParameterInfoRequest, GetDeviceParameterValuesRequest, GetMultiDeviceParameterValuesRequest, MultiDeviceParameterValuesStatus, SetDeviceParameterValuesRequest, SetMultiDeviceParameterValuesRequest, GetDeviceFileListRequest, DeviceFileListStatus, GetDeviceFileRequest, DeviceFileStatus, SetDeviceFileRequest, DeleteDeviceFileRequest, ResetDeviceFaultRequest, DeviceFaultResetStatus, StopDeviceRequest, DeviceStopStatus, StartDeviceFirmwareInstallationRequest, DeviceFirmwareInstallationStatus, GetDeviceLogRequest, DeviceLogStatus, StartCoggingTorqueRecordingRequest, CoggingTorqueRecordingStatus, GetCoggingTorqueDataRequest, CoggingTorqueDataStatus, StartOffsetDetectionRequest, OffsetDetectionStatus, StartPlantModelIdentificationRequest, PlantIdentificationStatus, ComputeAutoTuningGainsRequest, AutoTuningStatus, SetMotionControllerParametersRequest, MotionControllerStatus, EnableMotionControllerRequest, SetSignalGeneratorParametersRequest, SignalGeneratorStatus, StopSignalGeneratorRequest, StartMonitoringDeviceParameterValuesRequest, MonitoringParameterValuesStatus, StopMonitoringDeviceParameterValuesRequest, GetEthercatNetworkStateRequest, EthercatNetworkStateStatus, SetEthercatNetworkStateRequest, StartNarrowAngleCalibrationRequest, NarrowAngleCalibrationStatus, SetSystemClientTimeoutRequest, StartSystemIdentificationRequest, SystemIdentificationStatus, CirculoEncoderMagnetDistanceStatus, StartCirculoEncoderNarrowAngleCalibrationProcedureRequest, CirculoEncoderNarrowAngleCalibrationProcedureStatus, GetDeviceCiA402StateRequest, DeviceCiA402StateStatus, SetDeviceCiA402StateRequest, SystemLogStatus, StartDeviceSiiRestoreRequest, DeviceSiiRestoreStatus, StartOpenLoopFieldControlRequest, OpenLoopFieldControlStatus, ComputeFullAutoTuningGainsRequest, StartFullAutoTuningRequest, StopFullAutoTuningRequest, StartCirculoEncoderConfigurationRequest, CirculoEncoderConfigurationStatus, StopCirculoEncoderNarrowAngleCalibrationProcedureRequest, StartOsCommandRequest, OsCommandStatus, RestoreDefaultParametersType, DeviceParameterAddressValue, DeviceParameterIds, DeviceParameterInfo, RequestStatusMessage, UiPdoMapping, UiConfig, ExecuteForwardCallRequest, ForwardCallStatus, PlantModel, NotchFilter, LoadConfigStrategy, SystemInformationStatus, SetPdoModeRequest, PdoModeStatus, GetDeviceSiiRequest, DeviceSiiStatus, SmmAutomatedUpdate, SmmAutomatedUpdateProgress, SmmSoftwareUpdateProgress } from './types';
|
|
10
10
|
import { Cia402State, ModesOfOperation } from './cia402';
|
|
11
11
|
import { EncoderRegisterCommunicationOsCommandResponse, MotorPhaseOrderDetectionOsCommandResponse, OpenPhaseDetectionOsCommandResponse, OsCommandMode, OsCommandResponse, PhaseResistanceMeasurementOsCommandResponse, PhaseInductanceMeasurementOsCommandResponse, PolePairDetectionOsCommandResponse, CommutationOffsetMeasurementOsCommandResponse, IcMuCalibrationModeOsCommandResponse, OpenLoopFieldModeOsCommandResponse, HrdStreamingOsCommandResponse, TorqueConstantMeasurementOsCommandResponse, SkippedCyclesCounterOsCommandResponse, IgnoreBissStatusBitsOsCommandResponse, SystemIdentificationOsCommandResponse, KublerEncoderCommandOsCommandResponse, UseInternalEncoderVelocityOsCommandResponse, KublerEncoderRegisterCommunicationOsCommandResponse, SmmAcyclicHandlerOsCommandResponse, HrdStreamingOsCommandAction, HrdStreamingOsCommandDataIndex, SmmAcyclicHandlerLoadParametersForVerificationOsCommandResponse, ChirpSignalOptions, OsCommandAbortResult } from './os-command';
|
|
12
12
|
import { IntegroVariant } from './integro-variant';
|
|
@@ -238,9 +238,25 @@ export declare class MotionMasterReqResClient {
|
|
|
238
238
|
*
|
|
239
239
|
* If the requested file content is empty, Motion Master will return a not found error. This is subject to change now that Motion Master reads the file error codes.
|
|
240
240
|
*
|
|
241
|
-
* SOMANET_CiA_402.xml
|
|
241
|
+
* The ESI file ("SOMANET_CiA_402.xml" or "SOMANET_CiA_402.xml.zip") is never read from the device, see {@link getEsiFromIndexedDB}.
|
|
242
242
|
*/
|
|
243
243
|
getDeviceFile(props: GetDeviceFileRequest, requestTimeout: number, messageId?: string): Observable<DeviceFileStatus>;
|
|
244
|
+
/**
|
|
245
|
+
* Returns the ESI file cached in IndexedDB under the firmware version the device reports in 0x100A:00.
|
|
246
|
+
*
|
|
247
|
+
* The ESI file is never read from the device. Firmware installation no longer writes it to the device (see
|
|
248
|
+
* {@link installFirmwareAndCacheEsi}), and Motion Master does not remove a skipped file, so the file on the device may
|
|
249
|
+
* belong to an older firmware. Neither the file nor its ESI revision tells which firmware it belongs to.
|
|
250
|
+
* Caching it under the installed version would hide the correct ESI file for good.
|
|
251
|
+
*
|
|
252
|
+
* The ESI file gets into IndexedDB only from a firmware package: at firmware installation, see
|
|
253
|
+
* {@link cacheEsiFromFirmwarePackage}, or when a user loads it from a package in OBLAC Drives.
|
|
254
|
+
*
|
|
255
|
+
* Returns a failed status with the NOT_FOUND error code when the ESI file is not cached for the installed firmware,
|
|
256
|
+
* or when there is no IndexedDB, as outside the browser. Returns a failed status with the FAILED error code when the
|
|
257
|
+
* firmware version or IndexedDB can't be read.
|
|
258
|
+
*/
|
|
259
|
+
private getEsiFromIndexedDB;
|
|
244
260
|
private getDeviceFileUsingResolvedDeviceAddress;
|
|
245
261
|
/**
|
|
246
262
|
* Fixing a production screw-up that affects a very important customer. Added on February 29th, 2024.
|
|
@@ -315,8 +331,7 @@ export declare class MotionMasterReqResClient {
|
|
|
315
331
|
* Extracts the ESI file (SOMANET_CiA_402.xml) from a firmware package and stores its unzipped content in
|
|
316
332
|
* IndexedDB, keyed by the given firmware version.
|
|
317
333
|
*
|
|
318
|
-
*
|
|
319
|
-
* cached here, OBLAC can resolve it from IndexedDB without reading it back from the drive. This is what
|
|
334
|
+
* IndexedDB is the only source of the ESI file: {@link getDeviceFile} never reads it from the drive. This is what
|
|
320
335
|
* allows the ESI file (SOMANET_CiA_402.xml.zip) to be skipped during firmware installation, which avoids
|
|
321
336
|
* slow and unreliable FoE transfers and works around devices (e.g. NetX) that reject writing that file.
|
|
322
337
|
*
|
|
@@ -337,17 +352,18 @@ export declare class MotionMasterReqResClient {
|
|
|
337
352
|
* user-overridable: when `props.skipFiles` is provided it is passed through unchanged, so a caller can choose to
|
|
338
353
|
* still write the ESI by omitting it from that list.
|
|
339
354
|
* - Extracts the ESI from the package and stores it in IndexedDB keyed by firmware version (see
|
|
340
|
-
* {@link cacheEsiFromFirmwarePackage}) *before* the installation starts, so
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
355
|
+
* {@link cacheEsiFromFirmwarePackage}) *before* the installation starts, so {@link getDeviceFile} can return it
|
|
356
|
+
* as soon as the installation ends. IndexedDB is the only source of the ESI file: {@link getDeviceFile} never
|
|
357
|
+
* reads it from the drive, even when the ESI is also written there. A caching failure is logged but does not
|
|
358
|
+
* prevent installation; the ESI file is then not found until a user loads it from the package (Load ESI in
|
|
359
|
+
* OBLAC Drives).
|
|
344
360
|
*
|
|
345
361
|
* @param firmwareVersion - The firmware version to key the cached ESI by; this must match the value reported by
|
|
346
362
|
* the device parameter 0x100a:00 after installation, which {@link getDeviceFile} uses.
|
|
347
363
|
* For OBLAC firmware packages this is the version encoded in the package filename, see
|
|
348
364
|
* {@link extractFirmwareVersionFromFirmwarePackageFilename}. When it cannot be determined
|
|
349
365
|
* (e.g. an arbitrary package with an unrecognized filename), pass an empty value to skip
|
|
350
|
-
* caching; the
|
|
366
|
+
* caching; the ESI file is then not found unless it was cached before.
|
|
351
367
|
*/
|
|
352
368
|
installFirmwareAndCacheEsi(firmwareVersion: string | undefined, props: StartDeviceFirmwareInstallationRequest, requestTimeout: number, messageId?: string): Observable<DeviceFirmwareInstallationStatus>;
|
|
353
369
|
/**
|
|
@@ -1748,21 +1764,59 @@ export declare class MotionMasterReqResClient {
|
|
|
1748
1764
|
/**
|
|
1749
1765
|
* Changes the SMM password for the specified device.
|
|
1750
1766
|
*
|
|
1767
|
+
* The sequence is: write `<newPassword><oldPassword>` to the fs-buffer and run CHANGE_PASSWORD. If, and only if, the
|
|
1768
|
+
* SMM accepts the change, log out from the SMM, trigger an SMM restart (unless `triggerRestart` is false) and then
|
|
1769
|
+
* wait `rebootDelay` milliseconds before completing, so the next SMM command a caller issues does not land in the
|
|
1770
|
+
* reboot.
|
|
1771
|
+
*
|
|
1772
|
+
* The logout has to come before the restart. When the SMM is restarted while the session is still open, it stores
|
|
1773
|
+
* neither the new nor the old password, although it accepted the change, and only the master password gets in again.
|
|
1774
|
+
* After an accepted change the session is therefore closed; log in again with the new password to continue.
|
|
1775
|
+
*
|
|
1751
1776
|
* @param deviceRef - A reference to the target device.
|
|
1752
1777
|
* @param oldPassword - The current SMM password.
|
|
1753
|
-
* @param newPassword - The new password to set for the SMM.
|
|
1754
|
-
* @param commandTimeout - The timeout in milliseconds for the command
|
|
1778
|
+
* @param newPassword - The new password to set for the SMM, 4 to 24 printable ASCII characters.
|
|
1779
|
+
* @param commandTimeout - The timeout in milliseconds for the CHANGE_PASSWORD command. On firmware below 5.2.0 it also
|
|
1780
|
+
* covers the FoE write of the fs-buffer, because the buffer is written before the command is issued. If it runs out
|
|
1781
|
+
* while the SMM is still storing the password, the client gives up, the SMM is not restarted, and the result of the
|
|
1782
|
+
* change is unknown. Defaults to 12000: the drive gives up on the SMM after 10 s, so do not set it lower, and do not
|
|
1783
|
+
* retry after a timeout, the SMM may still be running the change.
|
|
1755
1784
|
* @param responsePollingInterval - The interval in milliseconds between polling for the response.
|
|
1756
|
-
*
|
|
1757
|
-
*
|
|
1785
|
+
* @param triggerRestart - Whether to restart the SMM after an accepted change and the logout. Defaults to true. The
|
|
1786
|
+
* firmware requires a restart after a password change, so pass false only if you restart the SMM yourself (with
|
|
1787
|
+
* {@link triggerSmmRestart}) before issuing any other SMM command. The logout happens either way, so your restart
|
|
1788
|
+
* comes after it.
|
|
1789
|
+
* @param rebootDelay - How long to wait after the restart command completes, in milliseconds, before the observable
|
|
1790
|
+
* completes. Defaults to 3000, the `SMM_REBOOT_DELAY` the firmware test reference uses. Ignored when
|
|
1791
|
+
* `triggerRestart` is false.
|
|
1792
|
+
*
|
|
1793
|
+
* @throws {Error} If a password is not 1 (old) or 4 (new) to 24 printable ASCII characters, if the SMM rejects the
|
|
1794
|
+
* change (the SMM is then not restarted and the session stays open), if the logout after an accepted change fails
|
|
1795
|
+
* (the SMM is then not restarted), or if the restart fails.
|
|
1758
1796
|
*
|
|
1759
1797
|
* @remarks
|
|
1760
|
-
*
|
|
1761
|
-
*
|
|
1798
|
+
* Completion means the SMM accepted the change. It does not prove that the SMM stored the intended password; only a
|
|
1799
|
+
* login with the new password does.
|
|
1800
|
+
*
|
|
1801
|
+
* Rules a caller has to follow, because the SMM and the drive do not enforce them for you:
|
|
1802
|
+
*
|
|
1803
|
+
* - A login for parameter download must be open. A login fails while a session is already open, so log out first:
|
|
1804
|
+
* use {@link reloginToSmmForParameterDownload}. The SMM closes a session after 5 minutes.
|
|
1805
|
+
* - The OS command object (0x1023) and the fs-buffer are a single slot per device. Nothing else may issue OS commands
|
|
1806
|
+
* to the same device during the sequence: no second script, no Motion Master Console on the OS Commands page, no
|
|
1807
|
+
* other tool. Issue SMM functions one at a time and wait for each to complete.
|
|
1808
|
+
* - When the SMM rejects the change, the response does not say why: a wrong old password, a missing or expired
|
|
1809
|
+
* session and an SMM that is still booting all produce the same "the SMM rejected the request (status 2)".
|
|
1810
|
+
*/
|
|
1811
|
+
changeSmmPassword(deviceRef: DeviceRef, oldPassword: string, newPassword: string, commandTimeout?: number, responsePollingInterval?: number, triggerRestart?: boolean, rebootDelay?: number): Observable<void>;
|
|
1812
|
+
/**
|
|
1813
|
+
* Runs an SMM sequence and then logs out from the SMM, on completion and on error alike.
|
|
1762
1814
|
*
|
|
1763
|
-
*
|
|
1815
|
+
* Unlike a `finalize(() => logout.subscribe())`, the logout is part of the returned observable: the result is
|
|
1816
|
+
* delivered only after the logout has finished, so a caller's next SMM command cannot run alongside it on the
|
|
1817
|
+
* device's single OS command slot. A failing logout does not replace the sequence's own result or error.
|
|
1764
1818
|
*/
|
|
1765
|
-
|
|
1819
|
+
private logoutFromSmmAfter;
|
|
1766
1820
|
/**
|
|
1767
1821
|
* Triggers an SMM restart for the specified device.
|
|
1768
1822
|
*
|
|
@@ -1833,6 +1887,34 @@ export declare class MotionMasterReqResClient {
|
|
|
1833
1887
|
* The commands execute only when subscribed to, ensuring a strict sequence.
|
|
1834
1888
|
*/
|
|
1835
1889
|
updateSmmSoftware(deviceRef: DeviceRef, username: string, password: string, buffer: Uint8Array, crc: number, chunkSize?: number, commandTimeout?: number, responsePollingInterval?: number, fsBufferReadWriteTimeout?: number): Observable<void>;
|
|
1890
|
+
/**
|
|
1891
|
+
* Performs a complete SMM software update like {@link updateSmmSoftware}, reporting progress as it goes.
|
|
1892
|
+
*
|
|
1893
|
+
* A {@link SmmSoftwareUpdateProgress} value is emitted when each stage starts, once per transmitted chunk,
|
|
1894
|
+
* and a final `done` value after the SMM restart has been triggered. Use it to show the user what the
|
|
1895
|
+
* update is doing; transmitting a large software file can take many minutes.
|
|
1896
|
+
*
|
|
1897
|
+
* Parameters are the same as for {@link updateSmmSoftware}.
|
|
1898
|
+
*
|
|
1899
|
+
* @throws {Error} If `buffer` is empty or `chunkSize` is not a positive integer. Nothing is sent to the device then.
|
|
1900
|
+
* @throws {Error} If any step in the software update process fails.
|
|
1901
|
+
*/
|
|
1902
|
+
updateSmmSoftwareWithProgress(deviceRef: DeviceRef, username: string, password: string, buffer: Uint8Array, crc: number, chunkSize?: number, commandTimeout?: number, responsePollingInterval?: number, fsBufferReadWriteTimeout?: number): Observable<SmmSoftwareUpdateProgress>;
|
|
1903
|
+
/**
|
|
1904
|
+
* Waits until the SMM reports the expected software version.
|
|
1905
|
+
*
|
|
1906
|
+
* After an SMM software update the SMM restarts and boots the new software, which can take around 30 s.
|
|
1907
|
+
* Reads may fail or return the previous version during that time, so the version is polled until it
|
|
1908
|
+
* matches or the timeout expires.
|
|
1909
|
+
*
|
|
1910
|
+
* @param deviceRef - Reference to the target device.
|
|
1911
|
+
* @param expectedVersion - The expected SMM software version, bitwise encoded (e.g. 25344 for v99.0).
|
|
1912
|
+
* @param timeout - (Optional) How long to wait, in ms. Defaults to 90,000 ms.
|
|
1913
|
+
* @param pollingInterval - (Optional) Delay between reads, in ms. Defaults to 2000 ms.
|
|
1914
|
+
*
|
|
1915
|
+
* @throws {Error} If the SMM does not report the expected version within `timeout`.
|
|
1916
|
+
*/
|
|
1917
|
+
waitForSmmFirmwareVersion(deviceRef: DeviceRef, expectedVersion: number, timeout?: number, pollingInterval?: number): Observable<void>;
|
|
1836
1918
|
/**
|
|
1837
1919
|
* Resolves whether an automated SMM software update is allowed for the specified device.
|
|
1838
1920
|
*
|
|
@@ -1843,7 +1925,8 @@ export declare class MotionMasterReqResClient {
|
|
|
1843
1925
|
*
|
|
1844
1926
|
* The automation is only permitted when **all** of the following conditions are met:
|
|
1845
1927
|
* - The device is a recognized Somanet product (`isValidProduct`).
|
|
1846
|
-
* - The device belongs to the Circulo product family (`isCirculo`).
|
|
1928
|
+
* - The device belongs to the Circulo product family (`isCirculo`). ACTILINK-JD / JD Duo devices are judged
|
|
1929
|
+
* by the underlying Circulo from their hardware description, see {@link resolveEncoderProductId}.
|
|
1847
1930
|
* - The binary is encrypted (`isBinaryEncrypted`).
|
|
1848
1931
|
* - The binary targets one of the supported SMM versions — v1.4 (260) or v2.56 (568) (`isAllowedBinaryVersion`).
|
|
1849
1932
|
* - If targeting v2.56, the device SoC firmware version is ≥ 5.5.0 (`canInstallV256`).
|
|
@@ -1858,7 +1941,7 @@ export declare class MotionMasterReqResClient {
|
|
|
1858
1941
|
*
|
|
1859
1942
|
* @returns A promise that resolves to an {@link SmmAutomatedUpdate} object containing:
|
|
1860
1943
|
* - `isValidProduct` — Whether the device maps to a known Somanet product.
|
|
1861
|
-
* - `isCirculo` — Whether the device
|
|
1944
|
+
* - `isCirculo` — Whether the device is a Circulo or a Circulo-based ACTILINK-JD / JD Duo.
|
|
1862
1945
|
* - `isCirculo7` — Whether the device is a Circulo 7.
|
|
1863
1946
|
* - `isCirculo9` — Whether the device is a Circulo 9.
|
|
1864
1947
|
* - `isDeviceLw1` — Whether the device SMM firmware is below v1.3 (version < 259).
|
|
@@ -1873,7 +1956,8 @@ export declare class MotionMasterReqResClient {
|
|
|
1873
1956
|
*/
|
|
1874
1957
|
resolveSmmAutomatedUpdateConditions(deviceRef: DeviceRef, buffer: Uint8Array): Promise<SmmAutomatedUpdate>;
|
|
1875
1958
|
/**
|
|
1876
|
-
* Performs an automated, multi-step SMM software update to an encrypted firmware version on a Circulo device
|
|
1959
|
+
* Performs an automated, multi-step SMM software update to an encrypted firmware version on a Circulo device,
|
|
1960
|
+
* or a Circulo-based ACTILINK-JD / JD Duo (judged by the underlying Circulo).
|
|
1877
1961
|
*
|
|
1878
1962
|
* Before installing the target binary, this method evaluates the device state by calling
|
|
1879
1963
|
* {@link resolveSmmAutomatedUpdateConditions}. Based on the result, it determines which
|
|
@@ -1887,20 +1971,29 @@ export declare class MotionMasterReqResClient {
|
|
|
1887
1971
|
* - **v99.0 + Circulo 9**: v77.1 → target
|
|
1888
1972
|
* - **v77.0 or v77.1**: target only
|
|
1889
1973
|
*
|
|
1890
|
-
*
|
|
1974
|
+
* After each installation the SMM restarts. The next step starts only once the SMM reports the
|
|
1975
|
+
* version that was just installed (see {@link waitForSmmFirmwareVersion}), so a failed or
|
|
1976
|
+
* unfinished installation stops the sequence with an error instead of continuing blindly.
|
|
1977
|
+
*
|
|
1978
|
+
* Transfer settings that are not given are resolved from the device firmware with
|
|
1979
|
+
* {@link resolveSmmSoftwareUpdateTimings}. On firmware without fs-buffer streaming (< v5.2.0),
|
|
1980
|
+
* `chunkSize` is always 1000 and `commandTimeout` is at least 420,000 ms.
|
|
1891
1981
|
*
|
|
1892
1982
|
* @param deviceRef - Reference to the target device.
|
|
1893
1983
|
* @param username - Username used for SMM authentication.
|
|
1894
1984
|
* @param password - Password used for SMM authentication.
|
|
1895
1985
|
* @param buffer - The target encrypted firmware binary as a `Uint8Array`.
|
|
1896
1986
|
* @param crc - CRC32 checksum of the target firmware binary for integrity verification.
|
|
1897
|
-
* @param chunkSize - (Optional) Size of each data chunk transmitted per step, in bytes.
|
|
1898
|
-
*
|
|
1899
|
-
*
|
|
1987
|
+
* @param chunkSize - (Optional) Size of each data chunk transmitted per step, in bytes.
|
|
1988
|
+
* Defaults to 1,000,000 with streaming (one command per file) and 1000 without.
|
|
1989
|
+
* @param commandTimeout - (Optional) Timeout for each OS command in ms.
|
|
1990
|
+
* Defaults to 180,000 ms with streaming and 420,000 ms without.
|
|
1900
1991
|
* @param responsePollingInterval - (Optional) Polling interval for command responses in ms. Defaults to 1000 ms.
|
|
1901
|
-
* @param fsBufferReadWriteTimeout - (Optional) Timeout for fs-buffer read/write operations in ms.
|
|
1992
|
+
* @param fsBufferReadWriteTimeout - (Optional) Timeout for fs-buffer read/write operations in ms.
|
|
1993
|
+
* Defaults to 150,000 ms with streaming and 5000 ms without.
|
|
1902
1994
|
*
|
|
1903
|
-
* @returns An `Observable
|
|
1995
|
+
* @returns An `Observable` of {@link SmmAutomatedUpdateProgress} that reports each step and stage,
|
|
1996
|
+
* and completes when the full installation sequence finishes successfully.
|
|
1904
1997
|
*
|
|
1905
1998
|
* @throws {Error} With message `'Unknown product. Cannot perform SMM software update.'` if the device
|
|
1906
1999
|
* serial number does not map to a known Somanet product.
|
|
@@ -1908,9 +2001,9 @@ export declare class MotionMasterReqResClient {
|
|
|
1908
2001
|
* e.g. the device is not a Circulo, the binary is not encrypted, the target version is
|
|
1909
2002
|
* unsupported, the SoC firmware is below v5.5.0 (for SMM v2.56), or the device is
|
|
1910
2003
|
* already on SMM v1.3+.
|
|
1911
|
-
* @throws {Error} If any
|
|
2004
|
+
* @throws {Error} If any installation step fails, or the SMM does not report the installed version afterwards.
|
|
1912
2005
|
*/
|
|
1913
|
-
updateSmmSoftwareToEncrypted(deviceRef: DeviceRef, username: string, password: string, buffer: Uint8Array, crc: number, chunkSize?: number, commandTimeout?: number, responsePollingInterval?: number, fsBufferReadWriteTimeout?: number): Observable<
|
|
2006
|
+
updateSmmSoftwareToEncrypted(deviceRef: DeviceRef, username: string, password: string, buffer: Uint8Array, crc: number, chunkSize?: number, commandTimeout?: number, responsePollingInterval?: number, fsBufferReadWriteTimeout?: number): Observable<SmmAutomatedUpdateProgress>;
|
|
1914
2007
|
/**
|
|
1915
2008
|
* Transmits SMM parameters to the specified device.
|
|
1916
2009
|
*
|