added Restone cli
This commit is contained in:
parent
8180599c04
commit
72e71c8e36
58
src/bin/Redstone.hx
Normal file
58
src/bin/Redstone.hx
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
package bin;
|
||||||
|
|
||||||
|
import kernel.peripherals.Peripherals.Peripheral;
|
||||||
|
import kernel.peripherals.Side;
|
||||||
|
import lib.cli.TermHandle;
|
||||||
|
import lib.cli.CLIBase;
|
||||||
|
|
||||||
|
using tink.CoreApi;
|
||||||
|
|
||||||
|
class Redstone extends CLIBase {
|
||||||
|
public function new() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function invoke(handle:TermHandle):Future<Bool> {
|
||||||
|
var subcommand = handle.args[0];
|
||||||
|
|
||||||
|
var side:Null<Side> = getSide(handle.args[1]);
|
||||||
|
if (side == null) {
|
||||||
|
handle.writeLn("Invalid side");
|
||||||
|
return Future.sync(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (subcommand) {
|
||||||
|
case "on":
|
||||||
|
Peripheral.instance.getRedstone(side).setOutput(true);
|
||||||
|
case "off":
|
||||||
|
Peripheral.instance.getRedstone(side).setOutput(false);
|
||||||
|
case "get":
|
||||||
|
var value = Peripheral.instance.getRedstone(side).getAnalogInput();
|
||||||
|
handle.writeLn("Analog input: " + value);
|
||||||
|
default:
|
||||||
|
handle.writeLn("Invalid subcommand");
|
||||||
|
return Future.sync(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Future.sync(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getSide(side:String):Null<Side> {
|
||||||
|
switch (side) {
|
||||||
|
case "top":
|
||||||
|
return Side.Top;
|
||||||
|
case "bottom":
|
||||||
|
return Side.Bottom;
|
||||||
|
case "left":
|
||||||
|
return Side.Left;
|
||||||
|
case "right":
|
||||||
|
return Side.Right;
|
||||||
|
case "front":
|
||||||
|
return Side.Front;
|
||||||
|
case "back":
|
||||||
|
return Side.Back;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -141,6 +141,8 @@ class Terminal {
|
|||||||
return new HelloWorld();
|
return new HelloWorld();
|
||||||
case "net":
|
case "net":
|
||||||
return new Net();
|
return new Net();
|
||||||
|
case "rs":
|
||||||
|
return new Redstone();
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user