本文整理汇总了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]);
}
}
示例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;
}
}
示例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);
}
}
示例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);
}
示例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);
}
示例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);
}
}
示例7: encodeStatusCode
export function encodeStatusCode(statusCode: StatusCode | ConstantStatusCode, stream: OutputBinaryStream) {
stream.writeUInt32(statusCode.value);
}
示例8: encodeBoolean
export function encodeBoolean(value: boolean, stream: OutputBinaryStream): void {
assert(isValidBoolean(value));
stream.writeUInt8(value ? 1 : 0);
}
示例9: encodeDouble
export function encodeDouble(value: Double, stream: OutputBinaryStream) {
stream.writeDouble(value);
}
示例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));
}
}