import IPostMessage from '../../IPostMessage'; import IFirmware from './IFirmware'; /** * The `sos.management.firmware` API groups together methods for working with the firmware of the device. * * :::warning * Always check if your absolute firmware URL ends with a firmware file. Example: `https://cnd.your-cms.com/brightsign/fw/brightsign-update.bsfw` * ::: * * :::info * For BrightSign firmware upgrade, please ensure that you have a text file with the SHA1 hash of that firmware file. * - Firmware file path: `https://cnd.your-cms.com/brightsign/fw/brightsign-update.bsfw` * - SHA1 txt file: `https://cnd.your-cms.com/brightsign/fw/brightsign-update.bsfw.sha1.txt` * ::: * *
* Firmware Management Capabilities * | Capability | Description | * |:------------|:-------------| * | `FIRMWARE_UPGRADE` | If device can upgrade firmware version | * * If you want to check if the device supports this capability, use [`sos.management.supports()`](https://developers.signageos.io/sdk/sos_management/#supports). *
*/ export default class Firmware implements IFirmware { private messagePrefix; private postMessage; /** @internal */ constructor(messagePrefix: string, postMessage: IPostMessage); /** * The `upgrade(version, baseUrl?)` method initializes a firmware upgrade using version and baseUrl. Platform users can install general * firmware version directly with passing just version number. Optionally, the baseUrl can be passed as argument to specify server where * the firmware files are accessible. * * @param version The version of the firmware being installed. * @param [baseUrl='https://2.signageos.io'] Optional server URL where firmware files are located. * @returns {Promise} A promise that resolves when the firmware upgrade is initiated. * @since 4.0.0 * * @example * await sos.management.firmware.upgrade('T-HKMLAKUC-2080.4'); */ upgrade(version: string, baseUrl?: string): Promise; /** * The `upgrade(baseUrl, version)` does the same as `upgrade(version, baseUrl)`. * * @alias upgrade(version: string, baseUrl?: string) * @param baseUrl The server URL where firmware files are located. * @param version The version of the firmware being installed. * @returns {Promise} A promise that resolves when the firmware upgrade is initiated. * @since 4.0.0 * * @example * await sos.management.firmware.upgrade('https://cdn.your-cms.com/tizen/pmf/fw/2080_4.bem', 'T-HKMLAKUC-2080.4'); */ upgrade(baseUrl: string, version: string): Promise; /** * The `upgrade(fwUri)` method initializes a firmware upgrade. Open users can upgrade fw passing FQN * uri where the firmware main file is located. * * This file type/extension differs for every platform. E.g.: * - SSSP: http://example.com/fw/T-0.0.0.msd * - Tizen: http://example.com/fw/T-0.0.0.bem * - Webos: http://example.com/fw/0.0.0.epk * - Brightsign: http://example.com/fw/hd2-0.0.0.bsfw * - Linux: http://example.com/fw/rpi-0.0.0.img.zip * - Android: http://example.com/fw/FB-00.0.0.zip * * @param fwUri FQN uri where the firmware main file is located. * @returns {Promise} A promise that resolves when the firmware upgrade is initiated. * @since 4.0.0 * * @example // {@link https://github.com/signageos/applet-examples/tree/master/examples/management-js-api/firmware | Example applet with firmware upgrade} * * @example * await sos.management.firmware.upgrade('https://cdn.your-cms.com/tizen/pmf/fw/2080_4.bem'); */ upgrade(fwUri: string): Promise; /** * The `getVersion()` method returns the version of the firmware currently installed on the device. * * @returns {Promise} A promise that resolves to the current firmware version. * @since 4.0.0 * * @example * const version = await sos.management.firmware.getVersion(); * console.log(version); // Returns String e.g. T-HKMLAKUC-2020.5 */ getVersion(): Promise; /** * The `getType()` method returns the type of the firmware currently installed on the device. * * This information, when combined with firmware version, can be used to identify a correct firmware image to install on the current device. * *
* Linux and Android prefixes * | Type | Description | * |:------------|:-------------| * | `rpi` | Any Raspberry Pi 3 or Compute Module 3 | * | `rpi4` | Any Raspberry Pi 4 or Compute Module 4 | * | `benq-` | Any Benq display | * | `philips-` | Any Philips display | * | `sharp-` | Any Sharp display | * | `elo-` | Any Elo display | *
* * @returns {Promise} A promise that resolves to the current firmware type. * @since 4.8.0 * * @example * const type = await sos.management.firmware.getType(); * console.log(type); // e.g. rpi4 */ getType(): Promise; private getMessage; }