/// /// Copyright © 2016-2021 The Thingsboard Authors /// /// Licensed under the Apache License, Version 2.0 (the "License"); /// you may not use this file except in compliance with the License. /// You may obtain a copy of the License at /// /// http://www.apache.org/licenses/LICENSE-2.0 /// /// Unless required by applicable law or agreed to in writing, software /// distributed under the License is distributed on an "AS IS" BASIS, /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. /// See the License for the specific language governing permissions and /// limitations under the License. /// import { BaseData } from '@shared/models/base-data'; import { TenantId } from '@shared/models/id/tenant-id'; import { FirmwareId } from '@shared/models/id/firmware-id'; import { DeviceProfileId } from '@shared/models/id/device-profile-id'; export enum ChecksumAlgorithm { MD5 = 'MD5', SHA256 = 'SHA256', SHA384 = 'SHA384', SHA512 = 'SHA512', CRC32 = 'CRC32', MURMUR3_32 = 'MURMUR3_32', MURMUR3_128 = 'MURMUR3_128' } export const ChecksumAlgorithmTranslationMap = new Map( [ [ChecksumAlgorithm.MD5, 'MD5'], [ChecksumAlgorithm.SHA256, 'SHA-256'], [ChecksumAlgorithm.SHA384, 'SHA-384'], [ChecksumAlgorithm.SHA512, 'SHA-512'], [ChecksumAlgorithm.CRC32, 'CRC-32'], [ChecksumAlgorithm.MURMUR3_32, 'MURMUR3-32'], [ChecksumAlgorithm.MURMUR3_128, 'MURMUR3-128'] ] ); export enum FirmwareType { FIRMWARE = 'FIRMWARE', SOFTWARE = 'SOFTWARE' } export const FirmwareTypeTranslationMap = new Map( [ [FirmwareType.FIRMWARE, 'firmware.types.firmware'], [FirmwareType.SOFTWARE, 'firmware.types.software'] ] ); export interface FirmwareInfo extends BaseData { tenantId?: TenantId; type: FirmwareType; deviceProfileId?: DeviceProfileId; title?: string; version?: string; hasData?: boolean; fileName: string; checksum?: string; checksumAlgorithm?: ChecksumAlgorithm; contentType: string; dataSize?: number; additionalInfo?: any; } export interface Firmware extends FirmwareInfo { file?: File; data: string; }