Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 6x 6x 6x 6x 6x 6x 6x 18x 18x 18x 6x 3x 3x 3x 6x 1x 1x 1x | import * as utils from '../utils';
import * as siProtocol from '../siProtocol';
import {ISiDevice, ISiDeviceDriverData} from '../SiDevice/ISiDevice';
import {ISiStation} from './ISiStation';
import {SiSendTask} from './SiSendTask';
export interface ISiTargetMultiplexer extends utils.IEventTarget<SiTargetMultiplexerEvents> {
_test: _ISiTargetMultiplexerTestData;
stations: {[Target in SiTargetMultiplexerTarget]?: ISiStation<Target>};
target: SiTargetMultiplexerTarget;
latestTarget: SiTargetMultiplexerTarget;
siDevice: ISiDevice<ISiDeviceDriverData<unknown>>;
sendMessage: (
target: SiTargetMultiplexerTarget,
message: siProtocol.SiMessage,
numResponses?: number,
timeoutInMiliseconds?: number,
) => Promise<number[][]>;
sendMessageToLatestTarget: (
message: siProtocol.SiMessage,
numResponses: number|undefined,
timeoutInMiliseconds: number|undefined,
) => Promise<number[][]>;
}
export interface _ISiTargetMultiplexerTestData {
latestTarget: SiTargetMultiplexerTarget;
sendQueue: SiSendTask[];
}
/* eslint-disable no-unused-vars,no-shadow */
export enum SiTargetMultiplexerTarget {
Unknown = 0,
Switching = 1,
Direct = 2,
Remote = 3,
}
/* eslint-enable no-unused-vars,no-shadow */
export class SiTargetMultiplexerMessageEvent extends utils.Event<'message'> {
constructor(
public siTargetMultiplexer: ISiTargetMultiplexer,
public message: siProtocol.SiMessage,
) {
super('message');
}
}
export class SiTargetMultiplexerDirectMessageEvent extends utils.Event<'directMessage'> {
constructor(
public siTargetMultiplexer: ISiTargetMultiplexer,
public message: siProtocol.SiMessage,
) {
super('directMessage');
}
}
export class SiTargetMultiplexerRemoteMessageEvent extends utils.Event<'remoteMessage'> {
constructor(
public siTargetMultiplexer: ISiTargetMultiplexer,
public message: siProtocol.SiMessage,
) {
super('remoteMessage');
}
}
export type SiTargetMultiplexerEvents = {
'message': SiTargetMultiplexerMessageEvent,
'directMessage': SiTargetMultiplexerDirectMessageEvent,
'remoteMessage': SiTargetMultiplexerRemoteMessageEvent,
};
|