123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- 'use strict';
- goog.provide('Blockly.Python.time');
- goog.require('Blockly.Python');
- Blockly.Python['time_delay'] = function(block) {
-
- Blockly.Python.definitions_['v831_import_time'] = `import time`;
-
- var delayTimeMs = (Blockly.Python.valueToCode(block, 'DELAY_TIME_MILI', Blockly.Python.ORDER_ATOMIC)) || '0';
- var code = 'time.sleep(' + delayTimeMs + ' / 1000)\n';
-
- return code;
- };
- Blockly.Python['time_delaymicros'] = function(block) {
-
- Blockly.Python.definitions_['v831_import_time']
- Blockly.Python.includes_['import_time'] = `def delayMicrosecond(t): # 微秒级延时函数
- start,end=0,0 # 声明变量
- start=time.time() # 记录开始时间
- t=(t-35)/1000000 # 将输入t的单位转换为秒,-35是时间补偿
- while end-start<t: # 循环至时间差值大于或等于设定值时
- end=time.time() `;
- var delayTimeMs = Blockly.Python.valueToCode(block, 'DELAY_TIME_MICRO', Blockly.Python.ORDER_ATOMIC) || '0';
- var code = 'delayMicrosecond(' + delayTimeMs + ')\n';
- return code;
- };
- Blockly.Python['time_delayseconds'] = function(block) {
-
- Blockly.Python.definitions_['v831_import_time'] = 'import time';
- var delayTimeMs = Blockly.Python.valueToCode(
- block, 'DELAY_TIME_MICRO', Blockly.Python.ORDER_ATOMIC) || '0';
- var code = 'time.sleep(' + delayTimeMs + ')\n';
- return code;
- };
- Blockly.Python['time_millis'] = function(block) {
-
- Blockly.Python.definitions_['v831_import_time'] = 'import time';
-
-
-
- var code = 'time.ticks_ms()';
-
- return [code, Blockly.Python.ORDER_ATOMIC];
- };
- Blockly.Python['time_micros'] = function(block) {
-
- Blockly.Python.definitions_['v831_import_time'] = 'import time';
-
-
-
- var code = 'time.ticks_us()';
-
- return [code, Blockly.Python.ORDER_ATOMIC];
- };
- Blockly.Python['infinite_loop'] = function(block) {
- return 'while(true)\n';
- };
- Blockly.Python['time_chrono_setup'] = function(block) {
- Blockly.Python.addInclude("chrono.h", "#include <Chrono.h>\n");
- Blockly.Python.addDeclaration("chrono_dec", "Chrono myChrono\n");
- }
- Blockly.Python['time_chrono_reset'] = function(block) {
- var code = "myChrono.restart()\n";
- return code;
- }
- Blockly.Python['time_chrono_elapsed'] = function(block) {
- var code = "myChrono.elapsed()";
- return [code, Blockly.Python.ORDER_ATOMIC];
- }
- Blockly.Python['time_chrono_timeCheck'] = function(block) {
- var time = Blockly.Python.valueToCode(this, "TIME", Blockly.Python.ORDER_ATOMIC);
- var code = "myChrono.hasPassed(" + time + ")";
- return [code, Blockly.Python.ORDER_ATOMIC];
- }
- Blockly.Python['time_everySecond'] = function(block) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- code = "";
- return code;
- }
- Blockly.Python['time_everyMilliSecond'] = function(block) {
-
-
-
-
-
-
-
-
-
- code = "";
- return code;
- }
|