當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript node-opcua-binary-stream.OutputBinaryStream類代碼示例

本文整理匯總了TypeScript中node-opcua-binary-stream.OutputBinaryStream的典型用法代碼示例。如果您正苦於以下問題:TypeScript OutputBinaryStream類的具體用法?TypeScript OutputBinaryStream怎麽用?TypeScript OutputBinaryStream使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了OutputBinaryStream類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: encodeUInt64

export function encodeUInt64(value: UInt64 | number, stream: OutputBinaryStream) {
    if (_.isNumber(value)) {
        const arr = coerceUInt64(value);
        stream.writeUInt32(arr[1]);
        stream.writeUInt32(arr[0]);
    } else {
        stream.writeUInt32((value as number[])[1]);
        stream.writeUInt32((value as number[])[0]);
    }
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:10,代碼來源:integers.ts

示例2: _encodeNodeId

function _encodeNodeId(encodingByte: number, nodeId: NodeId, stream: OutputBinaryStream) {

    stream.writeUInt8(encodingByte); // encoding byte

    /*jslint bitwise: true */
    encodingByte &= 0x3f;

    switch (encodingByte) {
        case EnumNodeIdEncoding.TwoBytes:
            stream.writeUInt8(nodeId ? nodeId.value as number : 0);
            break;
        case EnumNodeIdEncoding.FourBytes:
            stream.writeUInt8(nodeId.namespace);
            stream.writeUInt16(nodeId.value as number);
            break;
        case EnumNodeIdEncoding.Numeric:
            stream.writeUInt16(nodeId.namespace);
            stream.writeUInt32(nodeId.value as number);
            break;
        case EnumNodeIdEncoding.String:
            stream.writeUInt16(nodeId.namespace);
            encodeString(nodeId.value as string, stream);
            break;
        case EnumNodeIdEncoding.ByteString:
            stream.writeUInt16(nodeId.namespace);
            encodeByteString(nodeId.value as Buffer, stream);
            break;
        default:
            assert(encodingByte === EnumNodeIdEncoding.Guid);
            stream.writeUInt16(nodeId.namespace);
            encodeGuid(nodeId.value as Guid, stream);
            break;
    }
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:34,代碼來源:nodeid.ts

示例3: encodeArray

export function encodeArray(
    arr: any[] | null,
    stream: OutputBinaryStream,
    encodeElementFunc: (value: any, stream: OutputBinaryStream) => void): void {
    if (arr === null) {
        stream.writeUInt32(0xffffffff);
        return;
    }
    assert(_.isArray(arr));
    stream.writeUInt32(arr.length);
    for (const value of arr) {
        encodeElementFunc(value, stream);
    }
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:14,代碼來源:array.ts

示例4: writeTCPMessageHeader

export function writeTCPMessageHeader(msgType: string, chunkType: string, totalLength: number, stream: OutputBinaryStream) {

    if (stream instanceof Buffer) {
        stream = new BinaryStream(stream);
    }
    assert(is_valid_msg_type(msgType));
    assert(["A", "F", "C"].indexOf(chunkType) !== -1);

    stream.writeUInt8(msgType.charCodeAt(0));
    stream.writeUInt8(msgType.charCodeAt(1));
    stream.writeUInt8(msgType.charCodeAt(2));
    // Chunk type
    stream.writeUInt8(chunkType.charCodeAt(0)); // reserved

    stream.writeUInt32(totalLength);
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:16,代碼來源:tools.ts

示例5: encodeHighAccuracyDateTime

export function encodeHighAccuracyDateTime(date: Date | null, picoseconds: number, stream: OutputBinaryStream) {

    if (date === null) {
        stream.writeUInt32(0);
        stream.writeUInt32(picoseconds % 100000);
        return;
    }
    if (!(date instanceof Date)) {
        throw new Error("Expecting a Date : but got a " + typeof(date) + " " + (date as any).toString());
    }
    assert(date instanceof Date);
    const hl = bn_dateToHundredNanoSecondFrom1601(date, picoseconds);
    const hi = hl[0];
    const lo = hl[1];

    stream.writeInteger(lo);
    stream.writeInteger(hi);
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:18,代碼來源:encode_decode.ts

示例6: encodeExtensionObject

export function encodeExtensionObject(object: ExtensionObject | null, stream: OutputBinaryStream): void {

    if (!object) {
        encodeNodeId(makeNodeId(0), stream);
        stream.writeUInt8(0x00); // no body is encoded
        // note : Length shall not hbe specified, end of the job!
    } else {
        /* istanbul ignore next */
        if (!((object as any) instanceof ExtensionObject)) {
            throw new Error("Expecting a extension object");
        }
        // ensure we have a valid encoding Default Binary ID !!!
        /* istanbul ignore next */
        if (!object.schema) {
            debugLog(" object = ", object);
            throw new Error("object has no schema " + object.constructor.name);
        }
        const encodingDefaultBinary = object.schema.encodingDefaultBinary;
        /* istanbul ignore next */
        if (!encodingDefaultBinary) {
            debugLog(chalk.yellow("xxxxxxxxx encoding ExtObj "), object);
            throw new Error("Cannot find encodingDefaultBinary for this object");
        }
        /* istanbul ignore next */
        if (encodingDefaultBinary.isEmpty()) {
            debugLog(chalk.yellow("xxxxxxxxx encoding ExtObj "), (object.constructor as any).encodingDefaultBinary.toString());
            throw new Error("Cannot find encodingDefaultBinary for this object");
        }
        /* istanbul ignore next */
        if (is_internal_id(encodingDefaultBinary.value)) {
            debugLog(chalk.yellow("xxxxxxxxx encoding ExtObj "),
              (object.constructor as any).encodingDefaultBinary.toString(), object.schema.name);
            throw new Error("Cannot find valid OPCUA encodingDefaultBinary for this object");
        }

        encodeNodeId(encodingDefaultBinary, stream);
        stream.writeUInt8(0x01); // 0x01 The body is encoded as a ByteString.
        stream.writeUInt32(object.binaryStoreSize());
        object.encode(stream);
    }
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:41,代碼來源:extension_object.ts

示例7: encodeStatusCode

export function encodeStatusCode(statusCode: StatusCode | ConstantStatusCode, stream: OutputBinaryStream) {
    stream.writeUInt32(statusCode.value);
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:3,代碼來源:opcua_status_code.ts

示例8: encodeBoolean

export function encodeBoolean(value: boolean, stream: OutputBinaryStream): void {
    assert(isValidBoolean(value));
    stream.writeUInt8(value ? 1 : 0);
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:4,代碼來源:boolean.ts

示例9: encodeDouble

export function encodeDouble(value: Double, stream: OutputBinaryStream) {
    stream.writeDouble(value);
}
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:3,代碼來源:floats.ts

示例10:

 function write_UInt8(starts: number[]) {
     const n = starts.length;
     for (let i = 0; i < n; i++) {
         const start = starts[i];
         stream.writeUInt8(parseInt(guid.substr(start, 2), 16));
     }
 }
開發者ID:node-opcua,項目名稱:node-opcua,代碼行數:7,代碼來源:guid.ts


注:本文中的node-opcua-binary-stream.OutputBinaryStream類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。