i don't even know anymore
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package bin;
|
||||
|
||||
import lib.TermHandle;
|
||||
import kernel.fs.FileHandler.WriteHandle;
|
||||
import lib.CLIBase;
|
||||
|
||||
class HelloWorld extends CLIBase {
|
||||
|
||||
76
src/bin/Net.hx
Normal file
76
src/bin/Net.hx
Normal file
@@ -0,0 +1,76 @@
|
||||
package bin;
|
||||
|
||||
import kernel.peripherals.Peripherals.Peripheral;
|
||||
import kernel.net.Routing;
|
||||
import haxe.ds.ReadOnlyArray;
|
||||
import lib.TermHandle;
|
||||
import lib.CLIBase;
|
||||
|
||||
class Net extends CLIBase {
|
||||
private var handle:TermHandle;
|
||||
public function invoke(handle:TermHandle):Bool {
|
||||
this.handle = handle;
|
||||
|
||||
var subcommand = handle.args[0];
|
||||
var subcommand_args = handle.args.slice(1);
|
||||
|
||||
switch (subcommand) {
|
||||
case "route":
|
||||
return route(subcommand_args);
|
||||
case "iface":
|
||||
return iface(subcommand_args);
|
||||
case "help":
|
||||
printHelp();
|
||||
return true;
|
||||
case "ping":
|
||||
ping(subcommand_args);
|
||||
default:
|
||||
handle.writeLn("Unknown subcommand: " + subcommand);
|
||||
printHelp();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function printHelp() {
|
||||
handle.writeLn("net route");
|
||||
handle.writeLn("net iface");
|
||||
handle.writeLn("net help");
|
||||
}
|
||||
|
||||
private function route(args:ReadOnlyArray<String>):Bool {
|
||||
var routes = Routing.instance.getRouteTable();
|
||||
|
||||
for(k => v in routes) {
|
||||
handle.writeLn('${k} => ${v.interf.name()}(${v.cost})');
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function iface(args:ReadOnlyArray<String>):Bool {
|
||||
var modems = Peripheral.instance.getModems();
|
||||
|
||||
for (modem in modems) {
|
||||
handle.writeLn(modem.name());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function ping(args:ReadOnlyArray<String>) {
|
||||
if (args.length != 1) {
|
||||
handle.writeLn("Usage: net ping id");
|
||||
}
|
||||
|
||||
var toID:Null<Int> = Std.parseInt(args[0]);
|
||||
|
||||
if (toID == null) {
|
||||
handle.writeLn("Invalid ID");
|
||||
}
|
||||
|
||||
// var result = kernel.net.Net.instance.ping(toID);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -139,6 +139,8 @@ class Terminal {
|
||||
switch (name) {
|
||||
case "hello":
|
||||
return new HelloWorld();
|
||||
case "net":
|
||||
return new Net();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
68
src/bin/TurtleRemote.hx
Normal file
68
src/bin/TurtleRemote.hx
Normal file
@@ -0,0 +1,68 @@
|
||||
package bin;
|
||||
|
||||
import lib.ui.reactive.TurtleController;
|
||||
import util.ObservableValue;
|
||||
import kernel.turtle.Turtle;
|
||||
import util.DummyObservable;
|
||||
import lib.ui.reactive.TextElement;
|
||||
import lib.ui.reactive.ReactiveUI;
|
||||
import kernel.ui.WindowManager;
|
||||
import kernel.ui.WindowContext;
|
||||
|
||||
class TurtleRemote {
|
||||
|
||||
private var context:WindowContext;
|
||||
private var ui:ReactiveUI;
|
||||
|
||||
public function new() {
|
||||
|
||||
}
|
||||
|
||||
public function execute() {
|
||||
this.context = WindowManager.instance.createNewContext();
|
||||
|
||||
// var fuelText = new ObservableValue("");
|
||||
|
||||
// function updateFuel() {
|
||||
// fuelText.set('Fuel: ${Turtle.instance.getFuelLevel()} / ${Turtle.instance.getFuelLimit()}');
|
||||
// }
|
||||
// updateFuel();
|
||||
|
||||
// var fuel = new TextElement(fuelText);
|
||||
|
||||
|
||||
// var bForward = new TextElement(DummyObservable.dummy("Forward"),Black,White,{
|
||||
// onClick: function() {
|
||||
// Turtle.instance.forward();
|
||||
// updateFuel();
|
||||
// }
|
||||
// });
|
||||
|
||||
// var bBackward = new TextElement(DummyObservable.dummy("Backward"),Black,White,{
|
||||
// onClick: function() {
|
||||
// Turtle.instance.back();
|
||||
// updateFuel();
|
||||
// }
|
||||
// });
|
||||
|
||||
// var bLeft = new TextElement(DummyObservable.dummy("Turn left"),Black,White,{
|
||||
// onClick: function() {
|
||||
// Turtle.instance.turnLeft();
|
||||
// }
|
||||
// });
|
||||
|
||||
// var bRight = new TextElement(DummyObservable.dummy("Turn right"),Black,White,{
|
||||
// onClick: function() {
|
||||
// Turtle.instance.turnRight();
|
||||
// }
|
||||
// });
|
||||
|
||||
var ctl = new TurtleController();
|
||||
|
||||
this.ui = new ReactiveUI(this.context,[ctl]);
|
||||
|
||||
this.ui.render();
|
||||
|
||||
WindowManager.instance.focusContextToOutput(context,"main");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user