Skip to content

Commit f0c720a

Browse files
committed
optimize toycar code
1 parent ca82209 commit f0c720a

5 files changed

Lines changed: 89 additions & 69 deletions

File tree

blocks/msg/en.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ Blockly.Msg.WEBDUINO_BOARD_SERVER = "Private Server";
152152
Blockly.Msg.WEBDUINO_BOARD_WIFI = "Wi-Fi";
153153
Blockly.Msg.WEBDUINO_BOARD_SERIAL = "Serial Port";
154154
Blockly.Msg.WEBDUINO_BOARD_BLUETOOTH = "Bluetooth";
155+
Blockly.Msg.WEBDUINO_BOARD_MULTI = " multi";
155156
Blockly.Msg.WEBDUINO_BOARD_CHAIN = "chain";
156157
Blockly.Msg.WEBDUINO_BOARD_CHAIN_OK = "When all boards chain ready";
157158
Blockly.Msg.WEBDUINO_BOARD_CHAIN_DO = "do:";

blocks/msg/zh-hant.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ Blockly.Msg.WEBDUINO_BOARD_SERVER = "私有雲 Server,IP";
170170
Blockly.Msg.WEBDUINO_BOARD_WIFI = "Wi-Fi";
171171
Blockly.Msg.WEBDUINO_BOARD_SERIAL = "序列埠";
172172
Blockly.Msg.WEBDUINO_BOARD_BLUETOOTH = "藍芽";
173+
Blockly.Msg.WEBDUINO_BOARD_MULTI = " 共用";
173174
Blockly.Msg.WEBDUINO_BOARD_CHAIN = " 串聯";
174175
Blockly.Msg.WEBDUINO_BOARD_CHAIN_OK = "當開發板串連完成";
175176
Blockly.Msg.WEBDUINO_BOARD_CHAIN_DO = "執行";

blocks/webduino.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,15 +2255,15 @@ Blockly.Blocks['car_test_move'] = {
22552255
.appendField(new Blockly.FieldVariable("car"), "var_")
22562256
.appendField(Blockly.Msg.WEBDUINO_TESTCAR_ACTION, " 動作")
22572257
.appendField(new Blockly.FieldDropdown([
2258-
[Blockly.Msg.WEBDUINO_TESTCAR_GOFRONT, "goFront_"],
2259-
[Blockly.Msg.WEBDUINO_TESTCAR_GOBACK, "goBack_"],
2260-
[Blockly.Msg.WEBDUINO_TESTCAR_GOLEFT, "goLeft_"],
2261-
[Blockly.Msg.WEBDUINO_TESTCAR_GORIGHT, "goRight_"],
2262-
[Blockly.Msg.WEBDUINO_TESTCAR_BACKLEFT, "backLeft_"],
2263-
[Blockly.Msg.WEBDUINO_TESTCAR_BACKRIGHT, "backRight_"],
2264-
[Blockly.Msg.WEBDUINO_TESTCAR_TURNRIGHT, "turnRight_"],
2265-
[Blockly.Msg.WEBDUINO_TESTCAR_TURNLEFT, "turnLeft_"],
2266-
[Blockly.Msg.WEBDUINO_TESTCAR_STOP, "stop_"]
2258+
[Blockly.Msg.WEBDUINO_TESTCAR_GOFRONT, "goFront"],
2259+
[Blockly.Msg.WEBDUINO_TESTCAR_GOBACK, "goBack"],
2260+
[Blockly.Msg.WEBDUINO_TESTCAR_GOLEFT, "goLeft"],
2261+
[Blockly.Msg.WEBDUINO_TESTCAR_GORIGHT, "goRight"],
2262+
[Blockly.Msg.WEBDUINO_TESTCAR_BACKLEFT, "backLeft"],
2263+
[Blockly.Msg.WEBDUINO_TESTCAR_BACKRIGHT, "backRight"],
2264+
[Blockly.Msg.WEBDUINO_TESTCAR_TURNRIGHT, "turnRight"],
2265+
[Blockly.Msg.WEBDUINO_TESTCAR_TURNLEFT, "turnLeft"],
2266+
[Blockly.Msg.WEBDUINO_TESTCAR_STOP, "stop"]
22672267
]), "move_");
22682268
this.setColour(200);
22692269
this.setPreviousStatement(true);

generators/webduino.js

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ Blockly.JavaScript['board_ready'] = function (block) {
542542

543543
var type;
544544
if (checkbox_type_ == '1') {
545-
type = 'boardReady(' + value_device_ + ', function (board) {\n';
545+
type = 'boardReady('+value_device_+', function (board) {\n';
546546
} else if (checkbox_type_ == '2') {
547547
type = 'boardReady({ transport: \'serial\', path:' + value_device_ + ' }, function (board) {\n';
548548
} else if (checkbox_type_ == '3') {
@@ -1246,65 +1246,7 @@ Blockly.JavaScript['car_test_new'] = function (block) {
12461246
var dropdown_rb_ = block.getFieldValue('rb_');
12471247
var dropdown_lf_ = block.getFieldValue('lf_');
12481248
var dropdown_lb_ = block.getFieldValue('lb_');
1249-
var code = value_var_ + ' = {};\n\n' +
1250-
value_var_ + '.rightFront_ = getLed(board, ' + dropdown_rf_ + ');\n' +
1251-
value_var_ + '.rightBack_ = getLed(board, ' + dropdown_rb_ + ');\n' +
1252-
value_var_ + '.leftFront_ = getLed(board, ' + dropdown_lf_ + ');\n' +
1253-
value_var_ + '.leftBack_ = getLed(board, ' + dropdown_lb_ + ');\n\n' +
1254-
value_var_ + '.goFront_ = function(){\n' +
1255-
' ' + value_var_ + '.rightFront_.on();\n' +
1256-
' ' + value_var_ + '.rightBack_.off();\n' +
1257-
' ' + value_var_ + '.leftFront_.on();\n' +
1258-
' ' + value_var_ + '.leftBack_.off();\n' +
1259-
'};\n' +
1260-
value_var_ + '.goBack_ = function(){\n' +
1261-
' ' + value_var_ + '.rightFront_.off();\n' +
1262-
' ' + value_var_ + '.rightBack_.on();\n' +
1263-
' ' + value_var_ + '.leftFront_.off();\n' +
1264-
' ' + value_var_ + '.leftBack_.on();\n' +
1265-
'};\n' +
1266-
value_var_ + '.goRight_ = function(){\n' +
1267-
' ' + value_var_ + '.rightFront_.on();\n' +
1268-
' ' + value_var_ + '.rightBack_.off();\n' +
1269-
' ' + value_var_ + '.leftFront_.off();\n' +
1270-
' ' + value_var_ + '.leftBack_.off();\n' +
1271-
'};\n' +
1272-
value_var_ + '.goLeft_ = function(){\n' +
1273-
' ' + value_var_ + '.rightFront_.off();\n' +
1274-
' ' + value_var_ + '.rightBack_.off();\n' +
1275-
' ' + value_var_ + '.leftFront_.on();\n' +
1276-
' ' + value_var_ + '.leftBack_.off();\n' +
1277-
'};\n' +
1278-
value_var_ + '.turnRight_ = function(){\n' +
1279-
' ' + value_var_ + '.rightFront_.off();\n' +
1280-
' ' + value_var_ + '.rightBack_.on();\n' +
1281-
' ' + value_var_ + '.leftFront_.on();\n' +
1282-
' ' + value_var_ + '.leftBack_.off();\n' +
1283-
'};\n' +
1284-
value_var_ + '.turnLeft_ = function(){\n' +
1285-
' ' + value_var_ + '.rightFront_.on();\n' +
1286-
' ' + value_var_ + '.rightBack_.off();\n' +
1287-
' ' + value_var_ + '.leftFront_.off();\n' +
1288-
' ' + value_var_ + '.leftBack_.on();\n' +
1289-
'};\n' +
1290-
value_var_ + '.backLeft_ = function(){\n' +
1291-
' ' + value_var_ + '.rightFront_.off();\n' +
1292-
' ' + value_var_ + '.rightBack_.off();\n' +
1293-
' ' + value_var_ + '.leftFront_.off();\n' +
1294-
' ' + value_var_ + '.leftBack_.on();\n' +
1295-
'};\n' +
1296-
value_var_ + '.backRight_ = function(){\n' +
1297-
' ' + value_var_ + '.rightFront_.off();\n' +
1298-
' ' + value_var_ + '.rightBack_.on();\n' +
1299-
' ' + value_var_ + '.leftFront_.off();\n' +
1300-
' ' + value_var_ + '.leftBack_.off();\n' +
1301-
'};\n' +
1302-
value_var_ + '.stop_ = function(){\n' +
1303-
' ' + value_var_ + '.rightFront_.off();\n' +
1304-
' ' + value_var_ + '.rightBack_.off();\n' +
1305-
' ' + value_var_ + '.leftFront_.off();\n' +
1306-
' ' + value_var_ + '.leftBack_.off();\n' +
1307-
'};\n\n';
1249+
var code = value_var_+' = getToyCar(board,'+dropdown_rf_+','+dropdown_rb_+','+dropdown_lf_+','+dropdown_lb_+');\n';
13081250
return code;
13091251
};
13101252

webduino-blockly.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,81 @@
137137
return new webduino.module.RFID(board);
138138
}
139139

140+
function toyCar(board,RF,RB,LF,LB){
141+
this._rf = getLed(board, RF);
142+
this._rb = getLed(board, RB);
143+
this._lf = getLed(board, LF);
144+
this._lb = getLed(board, LB);
145+
}
146+
147+
toyCar.prototype.goFront = function(){
148+
var self = this;
149+
self._rf.on();
150+
self._rb.off();
151+
self._lf.on();
152+
self._lb.off();
153+
};
154+
toyCar.prototype.goBack = function(){
155+
var self = this;
156+
self._rf.off();
157+
self._rb.on();
158+
self._lf.off();
159+
self._lb.on();
160+
};
161+
toyCar.prototype.goRight = function(){
162+
var self = this;
163+
self._rf.on();
164+
self._rb.off();
165+
self._lf.off();
166+
self._lb.off();
167+
};
168+
toyCar.prototype.goLeft = function(){
169+
var self = this;
170+
self._rf.off();
171+
self._rb.off();
172+
self._lf.on();
173+
self._lb.off();
174+
};
175+
toyCar.prototype.turnRight = function(){
176+
var self = this;
177+
self._rf.off();
178+
self._rb.on();
179+
self._lf.on();
180+
self._lb.off();
181+
};
182+
toyCar.prototype.turnLeft = function(){
183+
var self = this;
184+
self._rf.on();
185+
self._rb.off();
186+
self._lf.off();
187+
self._lb.on();
188+
};
189+
toyCar.prototype.backLeft = function(){
190+
var self = this;
191+
self._rf.off();
192+
self._rb.off();
193+
self._lf.off();
194+
self._lb.on();
195+
};
196+
toyCar.prototype.backRight = function(){
197+
var self = this;
198+
self._rf.off();
199+
self._rb.on();
200+
self._lf.off();
201+
self._lb.off();
202+
};
203+
toyCar.prototype.stop = function(){
204+
var self = this;
205+
self._rf.off();
206+
self._rb.off();
207+
self._lf.off();
208+
self._lb.off();
209+
};
210+
211+
function getToyCar(board,RF,RB,LF,LB) {
212+
return new toyCar(board,RF,RB,LF,LB);
213+
}
214+
140215
function getCar(board, F, B, L, R) {
141216
return new Car(board, F, B, L, R);
142217
}
@@ -279,5 +354,6 @@
279354
scope.getADXL345 = getADXL345;
280355
scope.getJoystick = getJoystick;
281356
scope.getRFID = getRFID;
357+
scope.getToyCar = getToyCar;
282358

283359
}));

0 commit comments

Comments
 (0)