farmbot-web-frontend
Version:
Farmbot web frontend.
121 lines (111 loc) • 3.58 kB
text/typescript
type userVariables = "x"
| "y"
| "z"
| "s"
| "busy"
| "last"
| "pins"
| "unknown_parameter_busy"
| "unknown_parameter_last"
| "param_version"
| "unknown_parameter_unknown_parameter_1"
| "movement_timeout_x"
| "movement_timeout_y"
| "movement_timeout_z"
| "movement_invert_endpoints_x"
| "movement_invert_endpoints_y"
| "movement_invert_endpoints_z"
| "movement_invert_motor_x"
| "movement_invert_motor_y"
| "movement_invert_motor_z"
| "movement_steps_acc_dec_x"
| "movement_steps_acc_dec_y"
| "movement_steps_acc_dec_z"
| "movement_home_up_x"
| "movement_home_up_y"
| "movement_home_up_z"
| "movement_min_spd_x"
| "movement_min_spd_y"
| "movement_min_spd_z"
| "movement_max_spd_x"
| "movement_max_spd_y"
| "movement_max_spd_z"
| "unknown_parameter_1"
| "time"
| "pin0"
| "pin1"
| "pin2"
| "pin3"
| "pin4"
| "pin5"
| "pin6"
| "pin7"
| "pin8"
| "pin9"
| "pin10"
| "pin11"
| "pin12"
| "pin13";
import { Color } from "../interfaces";
type Steps = Array<Step>;
export interface Sequence {
id?: number;
color: Color;
name: string;
steps: Steps;
dirty?: boolean;
}
// Typescript does not have subset types.
// If you are reading this in the future and subset types exist, refactor this code.
export interface SequenceOptions {
color?: Color;
name?: string;
steps?: Steps;
dirty?: boolean;
}
export interface StepCommand {
x?: number;
y?: number;
z?: number;
speed?: number;
delay?: number;
pin?: number;
mode?: number;
position?: number;
value?: string;
operator?: ">"|"<"|"!="|"==";
variable?: userVariables;
sub_sequence_id?: string;
}
export type messageType = "emergency_stop"
| "home_all"
| "home_x"
| "home_y"
| "home_z"
| "move_absolute"
| "move_relative"
| "pin_write"
| "read_parameter"
| "read_status"
| "write_parameter"
| "wait"
| "send_message"
| "if_statement"
| "read_pin"
| "execute"
;
/** Similar to "Step", but "position" isnt mandatory. */
export interface UnplacedStep {
message_type: messageType;
position?: number;
id?: number;
command: StepCommand;
};
/** One step in a larger "Sequence". */
export interface Step extends UnplacedStep {
position: number;
};
export interface SequenceReducerState {
all: Array<Sequence>;
current: number;
};