Skip to content

Commit 06e88ae

Browse files
committed
Update library.ts, home.ts, agent.ts
1 parent 2324494 commit 06e88ae

3 files changed

Lines changed: 44 additions & 22 deletions

File tree

agent.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,24 @@ namespace kojac {
1515
this.prog.execute();
1616
}
1717

18-
public logBoolean(val: boolean, color: number) {
19-
this.home.logBoolean(val, color);
18+
public logBoolean(name: string, val: boolean, color: number) {
19+
this.home.logBoolean(name, val, color);
2020
}
2121

22-
public logNumber(val: number, color: number) {
23-
this.home.logNumber(val, color);
22+
public logNumber(name: string, val: number, color: number) {
23+
this.home.logNumber(name, val, color);
2424
}
2525

26-
public logString(val: string, color: number) {
27-
this.home.logString(val, color);
26+
public logString(name: string, val: string, color: number) {
27+
this.home.logString(name, val, color);
2828
}
2929

30-
public plotBoolean(val: boolean, color: number) {
31-
this.home.plotBoolean(val, color);
30+
public plotBoolean(name: string, val: boolean, color: number) {
31+
this.home.plotBoolean(name, val, color);
3232
}
3333

34-
public plotNumber(val: number, color: number) {
35-
this.home.plotNumber(val, color);
34+
public plotNumber(name: string, val: number, color: number) {
35+
this.home.plotNumber(name, val, color);
3636
}
3737
}
3838
}

home.ts

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ namespace kojac {
2424
currView: HomeView;
2525
logLines: LogLine[];
2626
agent: Agent;
27+
paused: boolean;
28+
singleStep: boolean;
2729

2830
constructor(app: App) {
2931
super(app, "home");
@@ -50,31 +52,45 @@ namespace kojac {
5052
this.setView(HomeView.Plot);
5153
}
5254

53-
public logBoolean(val: boolean, color: number) {
54-
this.log(val ? "true": "false", color);
55+
public logBoolean(name: string, val: boolean, color: number) {
56+
const text = `${name}: ${val ? "true": "false"}`;
57+
this.log(text, color);
5558
}
5659

57-
public logNumber(val: number, color: number) {
58-
this.log(val.toString(), color);
60+
public logNumber(name: string, val: number, color: number) {
61+
const text = `${name}: ${val.toString()}`;
62+
this.log(text, color);
5963
}
6064

61-
public logString(val: string, color: number) {
65+
public logString(name: string, val: string, color: number) {
66+
const text = `${name}: ${val}`;
6267
this.log(val, color);
6368
}
6469

65-
public plotBoolean(val: boolean, color: number) {
70+
public plotBoolean(name: string, val: boolean, color: number) {
6671
this.plot(val ? 1 : 0, color);
6772
}
6873

69-
public plotNumber(val: number, color: number) {
74+
public plotNumber(name: string, val: number, color: number) {
7075
this.plot(val, color);
7176
}
7277

7378
startup() {
7479
super.startup();
75-
controller.left.onEvent(ControllerButtonEvent.Released, function () {
80+
controller.left.onEvent(ControllerButtonEvent.Released, () => {
7681
this.app.pushStage(new Editor(this.app));
7782
});
83+
controller.up.onEvent(ControllerButtonEvent.Pressed, () => {
84+
this.paused = !this.paused;
85+
if (this.paused) {
86+
this.log("program paused");
87+
} else {
88+
this.log("program resumed");
89+
}
90+
});
91+
controller.right.onEvent(ControllerButtonEvent.Pressed, () => {
92+
this.singleStep = true;
93+
});
7894
}
7995

8096
activate() {
@@ -93,6 +109,7 @@ namespace kojac {
93109
this.app.save(SAVESLOT_AUTO, progdef);
94110
}
95111
this.agent = new Agent(this, progdef);
112+
this.paused = false;
96113
this.log("program started");
97114
}
98115

@@ -104,7 +121,10 @@ namespace kojac {
104121

105122
update(dt: number) {
106123
super.update(dt);
107-
this.agent.update(dt);
124+
if (!this.paused || (this.paused && this.singleStep)) {
125+
this.agent.update(dt);
126+
this.singleStep = false;
127+
}
108128
}
109129

110130
private setView(view: HomeView) {

library.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ namespace kojac {
6565
const value = (mode === "analog") ? pins.analogReadPin(AnalogPin.P1) : pins.digitalReadPin(DigitalPin.P1);
6666
rule.state["value"] = value;
6767
rule.state["value_type"] = "number";
68+
rule.state["value_name"] = "P1";
6869
rule.state["exec"] = true;
6970
},
7071

@@ -111,21 +112,22 @@ namespace kojac {
111112

112113
[tid.actuator.log]: (rule: Rule) => {
113114
const value_type = rule.state["value_type"];
115+
const name = rule.state["value_name"];
114116
const color = 5; // TODO
115117
switch (value_type) {
116118
case "boolean": {
117119
const value: boolean = rule.state["value"];
118-
rule.prog.agent.logBoolean(value, color);
120+
rule.prog.agent.logBoolean(name, value, color);
119121
break;
120122
}
121123
case "number": {
122124
const value: number = rule.state["value"];
123-
rule.prog.agent.logNumber(value, color);
125+
rule.prog.agent.logNumber(name, value, color);
124126
break;
125127
}
126128
case "string": {
127129
const value: string = rule.state["value"];
128-
rule.prog.agent.logString(value, color);
130+
rule.prog.agent.logString(name, value, color);
129131
break;
130132
}
131133
}

0 commit comments

Comments
 (0)