feat: 完成前后端旋转编码器的数字孪生
This commit is contained in:
@@ -45,7 +45,7 @@ export class AuthManager {
|
||||
|
||||
// SignalR连接 - 简单明了
|
||||
static createHubConnection(
|
||||
hubPath: "ProgressHub" | "JtagHub" | "DigitalTubesHub",
|
||||
hubPath: "ProgressHub" | "JtagHub" | "DigitalTubesHub" | "RotaryEncoderHub",
|
||||
) {
|
||||
return new HubConnectionBuilder()
|
||||
.withUrl(`http://127.0.0.1:5000/hubs/${hubPath}`, {
|
||||
|
||||
10
src/utils/signalR/Peripherals.RotaryEncoderClient.ts
Normal file
10
src/utils/signalR/Peripherals.RotaryEncoderClient.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
/* THIS (.ts) FILE IS GENERATED BY Tapper */
|
||||
/* eslint-disable */
|
||||
/* tslint:disable */
|
||||
|
||||
/** Transpiled from Peripherals.RotaryEncoderClient.RotaryEncoderDirection */
|
||||
export enum RotaryEncoderDirection {
|
||||
CounterClockwise = 0,
|
||||
Clockwise = 1,
|
||||
}
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
/* tslint:disable */
|
||||
// @ts-nocheck
|
||||
import type { HubConnection, IStreamResult, Subject } from '@microsoft/signalr';
|
||||
import type { IDigitalTubesHub, IJtagHub, IProgressHub, IDigitalTubesReceiver, IJtagReceiver, IProgressReceiver } from './server.Hubs';
|
||||
import type { IDigitalTubesHub, IJtagHub, IProgressHub, IRotaryEncoderHub, IDigitalTubesReceiver, IJtagReceiver, IProgressReceiver, IRotaryEncoderReceiver } from './server.Hubs';
|
||||
import type { DigitalTubeTaskStatus, ProgressInfo } from '../server.Hubs';
|
||||
import type { RotaryEncoderDirection } from '../Peripherals.RotaryEncoderClient';
|
||||
|
||||
|
||||
// components
|
||||
@@ -46,6 +47,7 @@ export type HubProxyFactoryProvider = {
|
||||
(hubType: "IDigitalTubesHub"): HubProxyFactory<IDigitalTubesHub>;
|
||||
(hubType: "IJtagHub"): HubProxyFactory<IJtagHub>;
|
||||
(hubType: "IProgressHub"): HubProxyFactory<IProgressHub>;
|
||||
(hubType: "IRotaryEncoderHub"): HubProxyFactory<IRotaryEncoderHub>;
|
||||
}
|
||||
|
||||
export const getHubProxyFactory = ((hubType: string) => {
|
||||
@@ -58,12 +60,16 @@ export const getHubProxyFactory = ((hubType: string) => {
|
||||
if(hubType === "IProgressHub") {
|
||||
return IProgressHub_HubProxyFactory.Instance;
|
||||
}
|
||||
if(hubType === "IRotaryEncoderHub") {
|
||||
return IRotaryEncoderHub_HubProxyFactory.Instance;
|
||||
}
|
||||
}) as HubProxyFactoryProvider;
|
||||
|
||||
export type ReceiverRegisterProvider = {
|
||||
(receiverType: "IDigitalTubesReceiver"): ReceiverRegister<IDigitalTubesReceiver>;
|
||||
(receiverType: "IJtagReceiver"): ReceiverRegister<IJtagReceiver>;
|
||||
(receiverType: "IProgressReceiver"): ReceiverRegister<IProgressReceiver>;
|
||||
(receiverType: "IRotaryEncoderReceiver"): ReceiverRegister<IRotaryEncoderReceiver>;
|
||||
}
|
||||
|
||||
export const getReceiverRegister = ((receiverType: string) => {
|
||||
@@ -76,6 +82,9 @@ export const getReceiverRegister = ((receiverType: string) => {
|
||||
if(receiverType === "IProgressReceiver") {
|
||||
return IProgressReceiver_Binder.Instance;
|
||||
}
|
||||
if(receiverType === "IRotaryEncoderReceiver") {
|
||||
return IRotaryEncoderReceiver_Binder.Instance;
|
||||
}
|
||||
}) as ReceiverRegisterProvider;
|
||||
|
||||
// HubProxy
|
||||
@@ -171,6 +180,39 @@ class IProgressHub_HubProxy implements IProgressHub {
|
||||
}
|
||||
}
|
||||
|
||||
class IRotaryEncoderHub_HubProxyFactory implements HubProxyFactory<IRotaryEncoderHub> {
|
||||
public static Instance = new IRotaryEncoderHub_HubProxyFactory();
|
||||
|
||||
private constructor() {
|
||||
}
|
||||
|
||||
public readonly createHubProxy = (connection: HubConnection): IRotaryEncoderHub => {
|
||||
return new IRotaryEncoderHub_HubProxy(connection);
|
||||
}
|
||||
}
|
||||
|
||||
class IRotaryEncoderHub_HubProxy implements IRotaryEncoderHub {
|
||||
|
||||
public constructor(private connection: HubConnection) {
|
||||
}
|
||||
|
||||
public readonly setEnable = async (enable: boolean): Promise<boolean> => {
|
||||
return await this.connection.invoke("SetEnable", enable);
|
||||
}
|
||||
|
||||
public readonly rotateEncoderOnce = async (num: number, direction: RotaryEncoderDirection): Promise<boolean> => {
|
||||
return await this.connection.invoke("RotateEncoderOnce", num, direction);
|
||||
}
|
||||
|
||||
public readonly enableCycleRotateEncoder = async (num: number, direction: RotaryEncoderDirection, freq: number): Promise<boolean> => {
|
||||
return await this.connection.invoke("EnableCycleRotateEncoder", num, direction, freq);
|
||||
}
|
||||
|
||||
public readonly disableCycleRotateEncoder = async (): Promise<boolean> => {
|
||||
return await this.connection.invoke("DisableCycleRotateEncoder");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Receiver
|
||||
|
||||
@@ -237,3 +279,24 @@ class IProgressReceiver_Binder implements ReceiverRegister<IProgressReceiver> {
|
||||
}
|
||||
}
|
||||
|
||||
class IRotaryEncoderReceiver_Binder implements ReceiverRegister<IRotaryEncoderReceiver> {
|
||||
|
||||
public static Instance = new IRotaryEncoderReceiver_Binder();
|
||||
|
||||
private constructor() {
|
||||
}
|
||||
|
||||
public readonly register = (connection: HubConnection, receiver: IRotaryEncoderReceiver): Disposable => {
|
||||
|
||||
const __onReceiveRotate = (...args: [number, RotaryEncoderDirection]) => receiver.onReceiveRotate(...args);
|
||||
|
||||
connection.on("OnReceiveRotate", __onReceiveRotate);
|
||||
|
||||
const methodList: ReceiverMethod[] = [
|
||||
{ methodName: "OnReceiveRotate", method: __onReceiveRotate }
|
||||
]
|
||||
|
||||
return new ReceiverMethodSubscription(connection, methodList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
// @ts-nocheck
|
||||
import type { IStreamResult, Subject } from '@microsoft/signalr';
|
||||
import type { DigitalTubeTaskStatus, ProgressInfo } from '../server.Hubs';
|
||||
import type { RotaryEncoderDirection } from '../Peripherals.RotaryEncoderClient';
|
||||
|
||||
export type IDigitalTubesHub = {
|
||||
/**
|
||||
@@ -60,6 +61,31 @@ export type IProgressHub = {
|
||||
getProgress(taskId: string): Promise<ProgressInfo>;
|
||||
}
|
||||
|
||||
export type IRotaryEncoderHub = {
|
||||
/**
|
||||
* @param enable Transpiled from bool
|
||||
* @returns Transpiled from System.Threading.Tasks.Task<bool>
|
||||
*/
|
||||
setEnable(enable: boolean): Promise<boolean>;
|
||||
/**
|
||||
* @param num Transpiled from int
|
||||
* @param direction Transpiled from Peripherals.RotaryEncoderClient.RotaryEncoderDirection
|
||||
* @returns Transpiled from System.Threading.Tasks.Task<bool>
|
||||
*/
|
||||
rotateEncoderOnce(num: number, direction: RotaryEncoderDirection): Promise<boolean>;
|
||||
/**
|
||||
* @param num Transpiled from int
|
||||
* @param direction Transpiled from Peripherals.RotaryEncoderClient.RotaryEncoderDirection
|
||||
* @param freq Transpiled from int
|
||||
* @returns Transpiled from System.Threading.Tasks.Task<bool>
|
||||
*/
|
||||
enableCycleRotateEncoder(num: number, direction: RotaryEncoderDirection, freq: number): Promise<boolean>;
|
||||
/**
|
||||
* @returns Transpiled from System.Threading.Tasks.Task<bool>
|
||||
*/
|
||||
disableCycleRotateEncoder(): Promise<boolean>;
|
||||
}
|
||||
|
||||
export type IDigitalTubesReceiver = {
|
||||
/**
|
||||
* @param data Transpiled from byte[]
|
||||
@@ -84,3 +110,12 @@ export type IProgressReceiver = {
|
||||
onReceiveProgress(message: ProgressInfo): Promise<void>;
|
||||
}
|
||||
|
||||
export type IRotaryEncoderReceiver = {
|
||||
/**
|
||||
* @param num Transpiled from int
|
||||
* @param direction Transpiled from Peripherals.RotaryEncoderClient.RotaryEncoderDirection
|
||||
* @returns Transpiled from System.Threading.Tasks.Task
|
||||
*/
|
||||
onReceiveRotate(num: number, direction: RotaryEncoderDirection): Promise<void>;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user