feetech-servo-ts
Version:
TypeScript SDK for Feetech servo motors using Web Serial API
57 lines (56 loc) • 2.47 kB
TypeScript
import { GroupSyncWrite } from './sync/group-sync-write';
import { GroupSyncRead } from './sync/group-sync-read';
import { SerialOptions, PingResult, ServoStatus, MotorsConfig } from './types';
export * from './types';
export * from './core/constants';
export * as helpers from './utils/helpers';
export interface FeetechServoConfig {
port?: SerialOptions;
motors?: MotorsConfig;
defaultModel?: string;
timeout?: number;
}
export declare class FeetechServo {
private portHandler;
private protocolHandler;
private isConnected;
private motors;
private defaultModel;
private getModelByServoId;
constructor(config?: FeetechServoConfig);
setMotors(motors: MotorsConfig): void;
getMotorModel(motorName: string): string;
setDefaultModel(model: string): void;
connect(): Promise<void>;
disconnect(): Promise<void>;
getConnectionStatus(): boolean;
ping(id: number): Promise<PingResult>;
scan(startId?: number, endId?: number): Promise<PingResult[]>;
readPosition(id: number): Promise<number>;
writePosition(id: number, position: number, speed?: number): Promise<void>;
setPositionInDegrees(id: number, degrees: number, speed?: number): Promise<void>;
getPositionInDegrees(id: number): Promise<number>;
enableTorque(id: number): Promise<void>;
disableTorque(id: number): Promise<void>;
readStatus(id: number): Promise<ServoStatus>;
setID(id: number, newId: number): Promise<void>;
setBaudRate(id: number, baudRate: number): Promise<void>;
factoryReset(id: number): Promise<void>;
reboot(id: number): Promise<void>;
createSyncWrite(address: number, dataLength: number): GroupSyncWrite;
createSyncRead(address: number, dataLength: number): GroupSyncRead;
syncWritePosition(positions: Array<{
id: number;
position: number;
}>): Promise<void>;
syncReadPosition(ids: number[]): Promise<Map<number, number>>;
readByte(id: number, address: number): Promise<number>;
writeByte(id: number, address: number, value: number): Promise<void>;
readWord(id: number, address: number): Promise<number>;
writeWord(id: number, address: number, value: number): Promise<void>;
readData(id: number, address: number, length: number): Promise<Uint8Array>;
writeData(id: number, address: number, data: Uint8Array): Promise<void>;
private ensureConnected;
}
export default FeetechServo;
//# sourceMappingURL=index.d.ts.map