feat: 完成数码管websocket通信
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
/* tslint:disable */
|
||||
// @ts-nocheck
|
||||
import type { HubConnection, IStreamResult, Subject } from '@microsoft/signalr';
|
||||
import type { IJtagHub, IProgressHub, IJtagReceiver, IProgressReceiver } from './server.Hubs';
|
||||
import type { IDigitalTubesHub, IJtagHub, IProgressHub, IDigitalTubesReceiver, IJtagReceiver, IProgressReceiver } from './server.Hubs';
|
||||
import type { ProgressInfo } from '../server.Hubs';
|
||||
|
||||
|
||||
@@ -43,11 +43,15 @@ class ReceiverMethodSubscription implements Disposable {
|
||||
// API
|
||||
|
||||
export type HubProxyFactoryProvider = {
|
||||
(hubType: "IDigitalTubesHub"): HubProxyFactory<IDigitalTubesHub>;
|
||||
(hubType: "IJtagHub"): HubProxyFactory<IJtagHub>;
|
||||
(hubType: "IProgressHub"): HubProxyFactory<IProgressHub>;
|
||||
}
|
||||
|
||||
export const getHubProxyFactory = ((hubType: string) => {
|
||||
if(hubType === "IDigitalTubesHub") {
|
||||
return IDigitalTubesHub_HubProxyFactory.Instance;
|
||||
}
|
||||
if(hubType === "IJtagHub") {
|
||||
return IJtagHub_HubProxyFactory.Instance;
|
||||
}
|
||||
@@ -57,11 +61,15 @@ export const getHubProxyFactory = ((hubType: string) => {
|
||||
}) as HubProxyFactoryProvider;
|
||||
|
||||
export type ReceiverRegisterProvider = {
|
||||
(receiverType: "IDigitalTubesReceiver"): ReceiverRegister<IDigitalTubesReceiver>;
|
||||
(receiverType: "IJtagReceiver"): ReceiverRegister<IJtagReceiver>;
|
||||
(receiverType: "IProgressReceiver"): ReceiverRegister<IProgressReceiver>;
|
||||
}
|
||||
|
||||
export const getReceiverRegister = ((receiverType: string) => {
|
||||
if(receiverType === "IDigitalTubesReceiver") {
|
||||
return IDigitalTubesReceiver_Binder.Instance;
|
||||
}
|
||||
if(receiverType === "IJtagReceiver") {
|
||||
return IJtagReceiver_Binder.Instance;
|
||||
}
|
||||
@@ -72,6 +80,35 @@ export const getReceiverRegister = ((receiverType: string) => {
|
||||
|
||||
// HubProxy
|
||||
|
||||
class IDigitalTubesHub_HubProxyFactory implements HubProxyFactory<IDigitalTubesHub> {
|
||||
public static Instance = new IDigitalTubesHub_HubProxyFactory();
|
||||
|
||||
private constructor() {
|
||||
}
|
||||
|
||||
public readonly createHubProxy = (connection: HubConnection): IDigitalTubesHub => {
|
||||
return new IDigitalTubesHub_HubProxy(connection);
|
||||
}
|
||||
}
|
||||
|
||||
class IDigitalTubesHub_HubProxy implements IDigitalTubesHub {
|
||||
|
||||
public constructor(private connection: HubConnection) {
|
||||
}
|
||||
|
||||
public readonly startScan = async (): Promise<boolean> => {
|
||||
return await this.connection.invoke("StartScan");
|
||||
}
|
||||
|
||||
public readonly stopScan = async (): Promise<boolean> => {
|
||||
return await this.connection.invoke("StopScan");
|
||||
}
|
||||
|
||||
public readonly setFrequency = async (frequency: number): Promise<boolean> => {
|
||||
return await this.connection.invoke("SetFrequency", frequency);
|
||||
}
|
||||
}
|
||||
|
||||
class IJtagHub_HubProxyFactory implements HubProxyFactory<IJtagHub> {
|
||||
public static Instance = new IJtagHub_HubProxyFactory();
|
||||
|
||||
@@ -125,6 +162,27 @@ class IProgressHub_HubProxy implements IProgressHub {
|
||||
|
||||
// Receiver
|
||||
|
||||
class IDigitalTubesReceiver_Binder implements ReceiverRegister<IDigitalTubesReceiver> {
|
||||
|
||||
public static Instance = new IDigitalTubesReceiver_Binder();
|
||||
|
||||
private constructor() {
|
||||
}
|
||||
|
||||
public readonly register = (connection: HubConnection, receiver: IDigitalTubesReceiver): Disposable => {
|
||||
|
||||
const __onReceive = (...args: [string]) => receiver.onReceive(...args);
|
||||
|
||||
connection.on("OnReceive", __onReceive);
|
||||
|
||||
const methodList: ReceiverMethod[] = [
|
||||
{ methodName: "OnReceive", method: __onReceive }
|
||||
]
|
||||
|
||||
return new ReceiverMethodSubscription(connection, methodList);
|
||||
}
|
||||
}
|
||||
|
||||
class IJtagReceiver_Binder implements ReceiverRegister<IJtagReceiver> {
|
||||
|
||||
public static Instance = new IJtagReceiver_Binder();
|
||||
|
||||
@@ -5,6 +5,22 @@
|
||||
import type { IStreamResult, Subject } from '@microsoft/signalr';
|
||||
import type { ProgressInfo } from '../server.Hubs';
|
||||
|
||||
export type IDigitalTubesHub = {
|
||||
/**
|
||||
* @returns Transpiled from System.Threading.Tasks.Task<bool>
|
||||
*/
|
||||
startScan(): Promise<boolean>;
|
||||
/**
|
||||
* @returns Transpiled from System.Threading.Tasks.Task<bool>
|
||||
*/
|
||||
stopScan(): Promise<boolean>;
|
||||
/**
|
||||
* @param frequency Transpiled from int
|
||||
* @returns Transpiled from System.Threading.Tasks.Task<bool>
|
||||
*/
|
||||
setFrequency(frequency: number): Promise<boolean>;
|
||||
}
|
||||
|
||||
export type IJtagHub = {
|
||||
/**
|
||||
* @param freq Transpiled from int
|
||||
@@ -30,6 +46,14 @@ export type IProgressHub = {
|
||||
join(taskId: string): Promise<boolean>;
|
||||
}
|
||||
|
||||
export type IDigitalTubesReceiver = {
|
||||
/**
|
||||
* @param data Transpiled from byte[]
|
||||
* @returns Transpiled from System.Threading.Tasks.Task
|
||||
*/
|
||||
onReceive(data: string): Promise<void>;
|
||||
}
|
||||
|
||||
export type IJtagReceiver = {
|
||||
/**
|
||||
* @param msg Transpiled from System.Collections.Generic.Dictionary<string, bool>
|
||||
|
||||
Reference in New Issue
Block a user