@openhps/sphero
Version:
Open Hybrid Positioning System - Sphero component
144 lines (143 loc) • 3.36 kB
TypeScript
export declare enum DeviceId {
apiProcessor = 16,
systemInfo = 17,
powerInfo = 19,
driving = 22,
animatronics = 23,
sensor = 24,
userIO = 26,
somethingAPI = 31
}
export declare enum SomethingApi {
something5 = 39
}
export declare enum APIProcessCommandIds {
echo = 0
}
export declare enum SystemInfoCommandIds {
mainApplicationVersion = 0,
bootloaderVersion = 1,
something = 6,
something6 = 18,
something7 = 40
}
export declare enum PowerCommandIds {
deepSleep = 0,
sleep = 1,
batteryVoltage = 3,
wake = 13,
something2 = 16,
something3 = 4,
something4 = 30
}
export declare enum DrivingCommandIds {
rawMotor = 1,
resetYaw = 6,
driveAsSphero = 4,
driveAsRc = 2,
driveWithHeading = 7,
stabilization = 12
}
export declare enum AnimatronicsCommandIds {
animationBundle = 5,
shoulderAction = 13,
domePosition = 15,
shoulderActionComplete = 38,
enableShoulderActionCompleteAsync = 42
}
export declare enum SensorCommandIds {
sensorMask = 0,
sensorResponse = 2,
configureCollision = 17,
collisionDetectedAsync = 18,
resetLocator = 19,
enableCollisionAsync = 20,
sensor1 = 15,
sensor2 = 23,
sensorMaskExtended = 12
}
export declare enum UserIOCommandIds {
allLEDs = 14,
allLEDsV21 = 28,
playAudioFile = 7,
audioVolume = 8,
stopAudio = 10,
testSound = 24,
matrixPixel = 45,
matrixColor = 47,
clearMatrix = 56,
matrixRotation = 58,
matrixScrollText = 59,
matrixLine = 61,
matrixFill = 62
}
export declare enum Flags {
isResponse = 1,
requestsResponse = 2,
requestsOnlyErrorResponse = 4,
resetsInactivityTimeout = 8,
commandHasTargetId = 16,
commandHasSourceId = 32
}
export declare enum APIConstants {
escape = 171,
startOfPacket = 141,
endOfPacket = 216,
escapeMask = 136,
escapedEscape = 35,
escapedStartOfPacket = 5,
escapedEndOfPacket = 80
}
export declare enum DriveFlag {
reverse = 1,
boost = 2,
fastTurnMode = 4,
tankDriveLeftMotorReverse = 8,
tankDriveRightMotorReverse = 16
}
export type CommandId = UserIOCommandIds | AnimatronicsCommandIds | DrivingCommandIds | PowerCommandIds | SystemInfoCommandIds | APIProcessCommandIds | SensorCommandIds | SomethingApi;
export interface ICommandOutput {
bytes: number[];
checksum: number;
}
export interface ICommandPartial {
payload?: number[];
commandId: CommandId;
targetId?: number;
sourceId?: number;
}
export interface ICommand extends ICommandPartial {
deviceId: DeviceId;
commandFlags?: Flags[];
sequenceNumber: number;
}
export interface ICommandWithRaw extends ICommand {
raw: Uint8Array;
}
export type CommandGenerator = (deviceId: number) => (part: ICommandPartial) => ICommandWithRaw;
export interface IThreeAxisSensor {
x: number;
y: number;
z: number;
}
export interface ITwoAxisSensor {
x: number;
y: number;
}
export interface ISensorResponse {
angles?: {
pitch: number;
roll: number;
yaw: number;
};
accelerometer?: {
filtered: IThreeAxisSensor;
};
locator?: {
position: ITwoAxisSensor;
velocity: ITwoAxisSensor;
};
gyro?: {
filtered: IThreeAxisSensor;
};
}