UNPKG

@iot9x.com/ipc-utils

Version:

九星云、九星小程序、九星配置工具所共用的库方法

187 lines (186 loc) 7.08 kB
import { F32Encode, F64Encode, I16Encode, I32Encode, I64Encode } from './constant'; export declare class Hex { /** * 十六进制字符串反转 * @description "BB AA" --> "AA BB" * @param hexStr 十六进制字符串 * @returns 转换后的十六进制字符串 */ static reverseBA(hexStr: string): string; /** * 十六进制字符串反转 * @description "CC DD AA BB" --> "AA BB CC DD" * @param hexStr 十六进制字符串 * @returns 转换后的十六进制字符串 */ static reverseCDAB(hexStr: string): string; /** * 十六进制字符串反转 * @description "BB AA DD CC" --> "AA BB CC DD" * @param hexStr 十六进制字符串 * @returns 转换后的十六进制字符串 */ static reverseBADC(hexStr: string): string; /** * 十六进制字符串反转 * @description "DD CC BB AA" --> "AA BB CC DD" * @param hexStr 十六进制字符串 * @returns 转换后的十六进制字符串 */ static reverseDCBA(hexStr: string): string; /** * 十六进制字符串反转 * @description "GG HH EE FF CC DD AA BB" --> "AA BB CC DD EE FF GG HH" * @param hexStr 十六进制字符串 * @returns 转换后的十六进制字符串 */ static reverseGHEFCDAB(hexStr: string): string; /** * 十六进制字符串反转 * @description "BB AA DD CC FF EE HH GG" --> "AA BB CC DD EE FF GG HH" * @param hexStr 十六进制字符串 * @returns 转换后的十六进制字符串 */ static reverseBADCFEHG(hexStr: string): string; /** * 十六进制字符串反转 * @description "HH GG FF EE DD CC BB AA" --> "AA BB CC DD EE FF GG HH" * @param hexStr 十六进制字符串 * @returns 转换后的十六进制字符串 */ static reverseHGFEDCBA(hexStr: string): string; /** * 将十六进制字符串转换成Int16数值 * @description 'FFE9' -> -23 * @param hexStr 十六进制编码字符串 * @param i16Encode 编码格式 * @returns 转换结果 */ static toInt16(hexStr: string, i16Encode: I16Encode): number; /** * 将Int16数值转换成十六进制字符串 * @description -23 -> 'FFE9' * @param data 数值 * @param i16Encode 编码格式 * @returns 十六进制字符串 */ static fromInt16(data: number, i16Encode: I16Encode): string; /** * 将十六进制字符串转换成Uint16 * @description '0017' -> 23 * @param hexStr 十六进制编码字符串 * @param i16Encode 编码格式 * @returns 转换结果 */ static toUInt16(hexStr: string, i16Encode: I16Encode): number; /** * 将UInt16数值转换成十六进制字符串 * @description 23 -> '0017' * @param data 数值 * @param i16Encode 编码格式 * @returns 十六进制字符串 */ static fromUInt16(data: number, i16Encode: I16Encode): string; /** * 将十六进制字符串转换成Int32数值 * @description 'FFFFFFE9' -> -23 * @param hexStr 十六进制编码字符串 * @param i16Encode 编码格式 * @returns 转换结果 */ static toInt32(hexStr: string, i32Encode: I32Encode): number; /** * 将Int32数值转换成十六进制字符串 * @description -23 -> 'FFFFFFE9' * @param data 数值 * @param i16Encode 编码格式 * @returns 十六进制字符串 */ static fromInt32(data: number, i32Encode: I32Encode): string; /** * 将十六进制字符串转换成UInt32 * @description '00 00 00 17' -> 23 * @param hexStr 十六进制编码字符串 * @param i16Encode 编码格式 * @returns 转换结果 */ static toUInt32(hexStr: string, i32Encode: I32Encode): number; /** * 将UInt32数值转换成十六进制字符串 * @description 23 -> '00 00 00 17' * @param data 数值 * @param i16Encode 编码格式 * @returns 十六进制字符串 */ static fromUInt32(data: number, i32Encode: I32Encode): string; /** * 将十六进制字符串转换成Int64数值 * @description 'FFFFFFFFFFFFFFE9' -> -23 * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题 * @param hexStr 十六进制编码字符串 * @param i16Encode 编码格式 * @returns 转换结果 */ static toInt64(hexStr: string, i64Encode: I64Encode): number; /** * 将Int64数值转换成十六进制字符串 * @description -23 -> 'FFFFFFFFFFFFFFE9' * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题 * @param data 数值 * @param i16Encode 编码格式 * @returns 十六进制字符串 */ static fromInt64(data: number, i64Encode: I64Encode): string; /** * 将十六进制字符串转换成UInt64数值 * @description '0000000000000017' -> 23 * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题 * @param hexStr 十六进制编码字符串 * @param i16Encode 编码格式 * @returns 转换结果 */ static toUInt64(hexStr: string, i64Encode: I64Encode): number; /** * 将UInt32数值转换成十六进制字符串 * @description 23 -> '0000000000000017' * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题 * @param data 数值 * @param i16Encode 编码格式 * @returns 十六进制字符串 */ static fromUInt64(data: number, i64Encode: I64Encode): string; /** * 将十六进制字符串转换成Float数值 * @description '40133333' -> 2.2999999523162na84 * @param hexStr 十六进制编码字符串 * @param f32Encode 编码格式 * @returns 转换结果 */ static toFloat(hexStr: string, f32Encode: F32Encode): number; /** * 将Float数值转换成十六进制字符串 * @description 123.456 -> '42f6e979' * @see https://www.virtualbing.fun/#/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/JavaScript/%E5%AE%9E%E8%B7%B5%E7%A7%AF%E7%B4%AF/IEEE754/README * @param data 数值 * @param f32Encode 编码格式 * @returns 十六进制字符串 */ static fromFloat(data: number, f32Encode: F32Encode): string; /** * 将十六进制字符串转换成Double数值 * @description '405edd2f1a9fbe77' -> 123.456 * @param hexStr 十六进制编码字符串 * @param f64Encode 编码格式 * @returns 转换结果 */ static toDouble(hexStr: string, f64Encode: F64Encode): number; /** * 将Double数值转换成十六进制字符串 * @description 123.456 -> '405edd2f1a9fbe77' * @see https://www.virtualbing.fun/#/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/JavaScript/%E5%AE%9E%E8%B7%B5%E7%A7%AF%E7%B4%AF/IEEE754/README * @param data 数值 * @param f64Encode 编码格式 * @returns 十六进制字符串 */ static fromDouble(data: number, f64Encode: F64Encode): string; }