ocoge/index.html

1099 lines
38 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="./lib/prettify_desert.css">
</link>
<link rel="stylesheet" href="./fonts/css/all.min.css">
</link>
<link rel="stylesheet" href="./index.css">
</link>
</head>
<body>
<!-- コードダイアログ -->
<dialog id="codeDlg">
<div id="dlgTitle">Source Code:</div>
<pre id="dlgContent" class="prettyprint lang-js linenums"></pre>
<button id="dlgClose" title="このダイアログを閉じます。">閉じる</button>
<button id="dlgExport" title="ソースコードをファイルに保存します。">ファイルに保存</button>
<span class="dlgCli" title="ソースコードの window.alert() を console.log() に置換します。コンソールで動作させるときにちょっと便利です。"><input
type="checkbox" id="dlgCli">CLI</span>
<div id="conmenu">
<ul>
<li><a href="#" onclick="document.execCommand('copy');" class="conCopy">コピー</a></li>
</ul>
</div>
</dialog>
<!-- ツールバー(左) -->
<div class="toolbar">
<div class="toolbar-left">
<span class="appTitle" title="大岩産 Code Generator" onclick="testfunc()"><span class="o"></span><span
class="co"></span><span class="ge"></span></span>
</div>
<!-- ツールバー(右) -->
<div class="toolbar-right" id="toolbar-right">
<button class="toolbarButton" title="JavaScriptのプログラムコードを表示・保存します。" onclick="ugj_showCode()"><i
class="fas fa-code"></i> CODE</button>
<button class="toolbarButton" title="ワークスペースや設定を削除して最初から始めます。" onclick="ugj_newWorkspace()"><i
class="fas fa-file"></i> 新規</button>
<button onclick="ugj_loadWorkspaceFromFile()" class="toolbarButton"
title="ファイルに保存したブロックプログラムを読み込みます。既にワークスペースにあるブロックは削除されません。"><i class="fas fa-folder-open"></i> 開く</button>
<button onclick="ugj_saveWorkspaceToFile()" class="toolbarButton" title="ワークスペースのブロックプログラムをファイルに保存します。"><i
class="fas fa-save"></i> 保存</button>
<button class="toolbarButton" title="ワークスペースのブロックプログラムを別名でファイルに保存します。" onclick="ugj_saveWorkspaceAs()"><i
class="fas fa-clone"></i> 別名</button>
<button class="toolbarButton" title="ブロックプログラムを実行します。" onclick="ugj_runCode()" id="runbtn"><i
class="fas fa-play-circle"></i> 実行</button>
<button class="iconbutton redo" title="アプリを再読み込みします。" onclick="location.reload()"><i
class="fas fa-redo-alt"></i></button>
</div>
</div>
<!-- Blockly -->
<div id="blocklyArea"></div>
<div id="blocklyDiv" style="position: absolute"></div>
<!-- ディスプレイカラム(ビデオ・ターミナル表示) -->
<div class="rightPane" id="dispColumn">
<div id="display_area"><canvas id="canvas_bg" class="display" width="480" height="360"></canvas><canvas id="canvas"
class="display" width="480" height="360"></canvas><canvas id="gcanvas" class="display" width="480"
height="360"></canvas><video id="maindisplay" class="display" width="480" height="360" autoplay
muted></video><video id="subdisplay" class="subdisplay" width="160" height="120" autoplay muted></video></div>
<pre id="blackboard" disabled></pre>
<form name="inputForm" onsubmit="return false" autocomplete="off" id="inputForm">
<div class="inputDiv"><input type="text" id="inputBox">
<div class="inputBtnDiv"><input type="submit" value="&#xf058" class="inputBtn fas"></div>
</div>
</form>
</div>
<!-- ツールボックス定義 -->
<xml xmlns="https://developers.google.com/blockly/xml" id="toolbox" style="display: none">
<category name="論理" css-icon="customIcon fas fa-random" categorystyle="logic_category">
<block type="controls_if"></block>
<block type="logic_compare">
<field name="OP">EQ</field>
</block>
<block type="logic_operation">
<field name="OP">AND</field>
</block>
<block type="logic_negate"></block>
<block type="logic_boolean">
<field name="BOOL">TRUE</field>
</block>
<block type="logic_null"></block>
<block type="logic_ternary"></block>
</category>
<category name="ループ" css-icon="customIcon fas fa-redo-alt" categorystyle="loop_category">
<block type="controls_repeat_ext">
<value name="TIMES">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="controls_whileUntil">
<field name="MODE">WHILE</field>
</block>
<block type="ugj_control_for">
<field name="crease">+</field>
<value name="index">
<block type="variables_get">
<field name="VAR" id="CP-q*|4;)+PZj!ExWdjr">番号</field>
</block>
</value>
<value name="from">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="to">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="by">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_controls_foreach">
<value name="item">
<block type="variables_get">
<field name="VAR" id="}LJbKt^CxR.FJ6a3T23v">項目</field>
</block>
</value>
</block>
<block type="controls_flow_statements">
<field name="FLOW">BREAK</field>
</block>
</category>
<category name="数・計算" css-icon="customIcon fas fa-calculator" categorystyle="math_category">
<block type="math_number">
<field name="NUM">0</field>
</block>
<block type="math_arithmetic">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_round">
<field name="OP">ROUND</field>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">3.1</field>
</shadow>
</value>
</block>
<block type="math_single">
<field name="OP">ROOT</field>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">9</field>
</shadow>
</value>
</block>
<block type="math_modulo">
<value name="DIVIDEND">
<shadow type="math_number">
<field name="NUM">64</field>
</shadow>
</value>
<value name="DIVISOR">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="math_random_int">
<value name="FROM">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="math_random_float"></block>
<block type="ugj_hextodec">
<value name="hex">
<shadow type="text">
<field name="TEXT">ff</field>
</shadow>
</value>
</block>
<block type="ugj_dectohex">
<value name="dec">
<shadow type="math_number">
<field name="NUM">255</field>
</shadow>
</value>
</block>
</category>
<category name="文字列" css-icon="customIcon fas fa-font" categorystyle="text_category">
<block type="text">
<field name="TEXT"></field>
</block>
<block type="text_print">
<value name="TEXT">
<shadow type="text">
<field name="TEXT">こんにちは!</field>
</shadow>
</value>
</block>
<block type="text_join">
<mutation items="2"></mutation>
</block>
<block type="text_length">
<value name="VALUE">
<shadow type="text">
<field name="TEXT">abc</field>
</shadow>
</value>
</block>
<block type="text_indexOf">
<value name="VALUE">
<block type="variables_get">
<field name="VAR">text</field>
</block>
</value>
<value name="FIND">
<shadow type="text">
<field name="TEXT">abc</field>
</shadow>
</value>
</block>
<block type="text_charAt">
<value name="VALUE">
<block type="variables_get">
<field name="VAR">text</field>
</block>
</value>
</block>
<block type="text_getSubstring">
<value name="STRING">
<block type="variables_get">
<field name="VAR">text</field>
</block>
</value>
</block>
<block type="ugj_charcode">
<value name="char">
<shadow type="text">
<field name="TEXT">a</field>
</shadow>
</value>
</block>
<block type="ugj_codechar">
<value name="code">
<shadow type="math_number">
<field name="NUM">97</field>
</shadow>
</value>
</block>
</category>
<category name="リスト" css-icon="customIcon fas fa-list-ol" categorystyle="list_category">
<block type="lists_create_with">
<mutation items="2"></mutation>
</block>
<block type="lists_length"></block>
<block type="lists_isEmpty"></block>
<block type="lists_indexOf">
<field name="END">FIRST</field>
<value name="VALUE">
<block type="variables_get">
<field name="VAR" id="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
</block>
</value>
</block>
<block type="lists_getIndex">
<mutation statement="false" at="true"></mutation>
<field name="MODE">GET</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get">
<field name="VAR" id="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
</block>
</value>
</block>
<block type="lists_setIndex">
<mutation at="true"></mutation>
<field name="MODE">SET</field>
<field name="WHERE">FROM_START</field>
<value name="LIST">
<block type="variables_get">
<field name="VAR" id="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
</block>
</value>
</block>
<block type="lists_split">
<mutation mode="SPLIT"></mutation>
<field name="MODE">SPLIT</field>
<value name="DELIM">
<shadow type="text">
<field name="TEXT">,</field>
</shadow>
</value>
</block>
<block type="lists_sort">
<field name="TYPE">NUMERIC</field>
<field name="DIRECTION">1</field>
</block>
</category>
<category name="変数" css-icon="customIcon fas fa-bars" categorystyle="variable_category" custom="VARIABLE">
</category>
<category name="関数" css-icon="customIcon fas fa-yin-yang" categorystyle="procedure_category" custom="PROCEDURE">
</category>
<sep></sep>
<category name="GPIO" css-icon="customIcon fab fa-raspberry-pi" categorystyle="gpio_category">
<label text="必須"></label>
<block type="ugj_gpio_open"></block>
<block type="ugj_gpio_close"></block>
<label text="基本"></label>
<block type="ugj_gpio_set_output">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_write">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<field name="level">1</field>
</block>
<block type="ugj_gpio_set_input">
<field name="lflag">_pi.PULL_DOWN</field>
<value name="gpio">
<shadow type="math_number">
<field name="NUM">6</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_read">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">6</field>
</shadow>
</value>
</block>
<label text="パルス" web-line="4.0" web-line-width="200"></label>
<block type="ugj_pwm">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="pwm_frequency">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="pwm_duty_cycle">
<shadow type="math_number">
<field name="NUM">30</field>
</shadow>
</value>
</block>
<block type="ugj_servo">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">12</field>
</shadow>
</value>
<value name="pulsewidth">
<shadow type="math_number">
<field name="NUM">1500</field>
</shadow>
</value>
</block>
<label text="シリアル" web-line="4.0" web-line-width="200"></label>
<block type="ugj_serial_open">
<field name="baud">9600</field>
</block>
<block type="ugj_serial_close"></block>
<block type="ugj_serial_read">
<value name="count">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_serial_write">
<value name="data">
<shadow type="text_join">
<mutation items="2"></mutation>
<value name="ADD0">
<shadow type="text">
<field name="TEXT">ohayo-.</field>
</shadow>
</value>
<value name="ADD1">
<shadow type="ugj_text_cr"></shadow>
</value>
</shadow>
</value>
</block>
<label text="I2C" web-line="4.0" web-line-width="200"></label>
<block type="ugj_i2c_open">
<value name="i2c_address">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ugj_i2c_close"></block>
<block type="ugj_i2c_write_byte_data">
<value name="reg">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="byte_val">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ugj_i2c_read_byte_data">
<value name="reg">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ugj_i2c_read_word_data">
<value name="reg">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ugj_i2c_write_i2c_block_data">
<value name="reg">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="data">
<shadow type="text">
<field name="TEXT">abc</field>
</shadow>
</value>
</block>
<block type="ugj_i2c_read_device">
<value name="count">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_i2c_write_device">
<value name="data">
<shadow type="text_join">
<mutation items="2"></mutation>
<value name="ADD0">
<shadow type="text">
<field name="TEXT">ohayo-.</field>
</shadow>
</value>
<value name="ADD1">
<shadow type="ugj_text_cr"></shadow>
</value>
</shadow>
</value>
</block>
<label text="Extra" web-line="4.0" web-line-width="200"></label>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="センサー" css-icon="customIcon fas fa-microchip" categorystyle="sensor_category">
<label text="温湿度気圧センサー BME280" web-line="4.0" web-line-width="200"></label>
<block type="ugj_bme280">
<field name="addr">0x76</field>
</block>
<block type="ugj_bme280_data">
<field name="thp">0</field>
</block>
<label text="ジェスチャーセンサー PAJ7620" web-line="4.0" web-line-width="200"></label>
<block type="ugj_gesture_init">
<value name="i2c_addr">
<shadow type="ugj_hextodec">
<value name="hex">
<shadow type="text">
<field name="TEXT">73</field>
</shadow>
</value>
</shadow>
</value>
</block>
<block type="ugj_gesture_read"></block>
<block type="ugj_gesture_stop"></block>
<label text="赤外線アレイセンサーサーマルカメラAMG8833" web-line="4.0" web-line-width="200"></label>
<block type="ugj_grideye_init">
<field name="addr">0x69</field>
</block>
<block type="ugj_grideye_thermistor"></block>
<block type="ugj_grideye_read"></block>
<block type="ugj_grideye_stop"></block>
<block type="ugj_grideye_canvas_create"></block>
<block type="ugj_draw_grideyedata">
<field name="color_high">#ff0000</field>
<field name="color_low">#3333ff</field>
<value name="temp_high">
<shadow type="math_number">
<field name="NUM">28</field>
</shadow>
</value>
<value name="temp_low">
<shadow type="math_number">
<field name="NUM">15</field>
</shadow>
</value>
</block>
<block type="ugj_teachable_machine"></block>
<block type="ugj_grideye_predict_class"></block>
<block type="ugj_grideye_add_example">
<value name="class_id">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ugj_tensorset_stringify"></block>
<block type="ugj_tensorset_parse"></block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="マルチメディア" css-icon="customIcon fas fa-gamepad" categorystyle="multimedia_category">
<label text="キャンバス" web-line="4.0" web-line-width="200"></label>
<block type="ugj_canvas_init"></block>
<block type="ugj_canvas_clearrect">
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="w">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_width"></block>
<block type="ugj_canvas_height"></block>
<block type="ugj_canvas_drawcircle">
<value name="x">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="r">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="color">
<shadow type="colour_picker">
<field name="COLOUR">#9999ff</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_drawrect">
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="w">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="color">
<shadow type="colour_picker">
<field name="COLOUR">#ff0000</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_loadimg">
<value name="imgfilename">
<shadow type="text">
<field name="TEXT">photo.jpg</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_finalize"></block>
<label text="イベント" web-line="4.0" web-line-width="200"></label>
<block type="ugj_event_key">
<field name="updown">keydown</field>
<value name="key">
<block type="variables_get">
<field name="VAR" id="Tf-2_OhUEAcOe;U}wu%I">キー</field>
</block>
</value>
</block>
<label text="色" web-line="4.0" web-line-width="200"></label>
<block type="colour_picker">
<field name="COLOUR">#ff0000</field>
</block>
<block type="colour_random"></block>
<block type="colour_rgb">
<value name="RED">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="GREEN">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="BLUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<label text="サウンド" web-line="4.0" web-line-width="200"></label>
<block type="ugj_sound_play">
<field name="sound">meow</field>
</block>
<label text="顔認識" web-line="4.0" web-line-width="200"></label>
<block type="ugj_face_init"></block>
<block type="ugj_face_display"></block>
<block type="ugj_face_detect">
<value name="preditions">
<block type="variables_get">
<field name="VAR" id="TLZRpW`yXuYE3Z31)B=2">検出結果</field>
</block>
</value>
</block>
<block type="ugj_face_location">
<field name="member">topLeft[0]</field>
<value name="prediction">
<block type="lists_getIndex">
<mutation statement="false" at="true"></mutation>
<field name="MODE">GET</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get">
<field name="VAR" id="_W]y2e!_~suF]yM;LQ1~">検出結果</field>
</block>
</value>
<value name="AT">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="ugj_face_draw">
<field name="with_landmark">TRUE</field>
<value name="prediction">
<block type="lists_getIndex">
<mutation statement="false" at="true"></mutation>
<field name="MODE">GET</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get">
<field name="VAR" id="E-Bsl~,RZG]E)v`k![_p">検出結果</field>
</block>
</value>
<value name="AT">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
</block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="ネットワーク" css-icon="customIcon fas fa-wifi" categorystyle="network_category">
<label text="基本" web-line="4.0" web-line-width="200"></label>
<block type="ugj_network_axios_geturl">
<value name="url">
<shadow type="text">
<field name="TEXT">http://www.yahoo.co.jp/</field>
</shadow>
</value>
</block>
<block type="ugj_network_sendmail">
<value name="to">
<shadow type="text">
<field name="TEXT">to@example.com</field>
</shadow>
</value>
<value name="subject">
<shadow type="text">
<field name="TEXT">おはよう</field>
</shadow>
</value>
<value name="text">
<shadow type="text">
<field name="TEXT">朝ですよ</field>
</shadow>
</value>
</block>
<label text="サーバー" web-line="4.0" web-line-width="200"></label>
<block type="ugj_network_httpserver">
<value name="url">
<block type="variables_get">
<field name="VAR" id="b`}7sB~6O9+IKJ!vJzA`">URL</field>
</block>
</value>
<value name="response">
<shadow type="text">
<field name="TEXT">オコゲ</field>
</shadow>
</value>
</block>
<label text="ウェブチャット" web-line="4.0" web-line-width="200"></label>
<block type="ugj_library_load">
<value name="lib">
<shadow type="ugj_library_skyway"></shadow>
</value>
</block>
<block type="ugj_webchat"></block>
<block type="ugj_getusermedia"></block>
<block type="ugj_skyway_newpeer">
<value name="my_id">
<block type="variables_get">
<field name="VAR" id="P$},PvZ}j#)8lw++|u7h">自分のID</field>
</block>
</value>
<value name="apikey">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="ugj_skyway_called"></block>
<block type="ugj_skyway_events">
<value name="remote_id">
<block type="variables_get">
<field name="VAR" id="lN*;t*HFF;@[)a_m3#F8">相手のID</field>
</block>
</value>
</block>
<block type="ugj_skyway_eventopen"></block>
<block type="ugj_skyway_eventdata">
<value name="data">
<block type="variables_get">
<field name="VAR" id="l[-u+nGf?P~Zu?k(bgP)">発言</field>
</block>
</value>
</block>
<block type="ugj_skyway_eventsend">
<value name="data">
<block type="variables_get">
<field name="VAR" id="NbC3[s+Uilk#moos+bn8">内容</field>
</block>
</value>
</block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="特殊" css-icon="customIcon fas fa-plug" categorystyle="special_category">
<label text="出入力" web-line="4.0" web-line-width="200"></label>
<block type="ugj_canvas_say">
<value name="say">
<shadow type="text">
<field name="TEXT">コンニチワ!</field>
</shadow>
</value>
<value name="sec">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="ugj_event_answer">
<value name="question">
<shadow type="text">
<field name="TEXT">お名前は?</field>
</shadow>
</value>
<value name="answer">
<block type="variables_get">
<field name="VAR" id=":w)sl|yxx4k^W-~-VM#,">答え</field>
</block>
</value>
</block>
<block type="ugj_blackboard_show"></block>
<block type="ugj_blackboard_write">
<field name="style">normal</field>
<field name="line">new</field>
<value name="text">
<shadow type="text">
<field name="TEXT">コンニチワ!</field>
</shadow>
</value>
<value name="color">
<shadow type="colour_picker">
<field name="COLOUR">#ccffff</field>
</shadow>
</value>
</block>
<block type="ugj_blackboard_content"></block>
<block type="ugj_clearblackboard"></block>
<block type="ugj_control_button">
<value name="label">
<shadow type="text">
<field name="TEXT">ボタン1</field>
</shadow>
</value>
<value name="textcolor">
<shadow type="colour_picker">
<field name="COLOUR">#ffffff</field>
</shadow>
</value>
<value name="bgcolor">
<shadow type="colour_picker">
<field name="COLOUR">#999999</field>
</shadow>
</value>
<value name="title">
<shadow type="text">
<field name="TEXT">ここをクリック</field>
</shadow>
</value>
</block>
<block type="ugj_localstorage_save">
<value name="keyValue">
<shadow type="text">
<field name="TEXT">abc</field>
</shadow>
</value>
<value name="keyName">
<shadow type="text">
<field name="TEXT">storage</field>
</shadow>
</value>
</block>
<block type="ugj_localstorage_load">
<value name="keyName">
<shadow type="text">
<field name="TEXT">storage</field>
</shadow>
</value>
</block>
<block type="ugj_localstorage_remove">
<value name="key">
<shadow type="text">
<field name="TEXT">storage</field>
</shadow>
</value>
</block>
<label text="制御" web-line="4.0" web-line-width="200"></label>
<block type="ugj_sleep">
<value name="sec">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_set_timeout">
<value name="sec">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_set_interval">
<value name="sec">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_special_clearinterval"></block>
<label text="プロセス" web-line="4.0" web-line-width="200"></label>
<block type="ugj_spawnsync">
<value name="data">
<block type="variables_get">
<field name="VAR" id="9z28J37fMu2VaWhbd4*=">実行結果</field>
</block>
</value>
</block>
<block type="ugj_spawn">
<value name="data">
<block type="variables_get">
<field name="VAR" id=";i*e;NG!%_g}7}wTeaQc">データストリーム</field>
</block>
</value>
</block>
<block type="ugj_child_julius"></block>
<block type="aquestalk_pi">
<value name="talk">
<shadow type="text">
<field name="TEXT">おはようございます。</field>
</shadow>
</value>
</block>
<block type="ugj_child_irrecord">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">23</field>
</shadow>
</value>
</block>
<block type="ugj_child_irplayback">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">22</field>
</shadow>
</value>
<value name="signal">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="ugj_child_irrcvr">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">23</field>
</shadow>
</value>
</block>
<block type="ugj_child_fswebcam">
<value name="filename">
<shadow type="text">
<field name="TEXT">photo.jpg</field>
</shadow>
</value>
</block>
<block type="ugj_child_pyscript">
<value name="script_path">
<shadow type="text">
<field name="TEXT">test.py</field>
</shadow>
</value>
</block>
<label text="特殊記号" web-line="4.0" web-line-width="200"></label>
<block type="ugj_text_cr"></block>
<block type="ugj_text_lf"></block>
<block type="ugj_text_cursor"></block>
<label text="特殊" web-line="4.0" web-line-width="200"></label>
<block type="ugj_socket">
<field name="data" id="Y^@?sd}wN]H+nmK=[{wL" variabletype="">受信データ</field>
<value name="host">
<shadow type="text">
<field name="TEXT">localhost</field>
</shadow>
</value>
<value name="port">
<shadow type="math_number">
<field name="NUM">23</field>
</shadow>
</value>
</block>
<block type="ugj_socket_write">
<value name="cmd">
<shadow type="text">
<field name="TEXT">Hello</field>
</shadow>
</value>
</block>
<block type="ugj_file_readsync">
<field name="encoding">utf8</field>
<value name="filename">
<shadow type="text">
<field name="TEXT">example.txt</field>
</shadow>
</value>
</block>
<block type="ugj_dev_run_js"></block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="スニペット" css-icon="customIcon fas fa-egg" categorystyle="snippets_category">
<label text="停止ボタンつきループ" web-line="4.0" web-line-width="200"></label>
<variables>
<variable id="O-NNhS!sS_oTSB?7JB]$">停止フラグ</variable>
</variables>
<block type="variables_set" id="W+CX}t(}EgABVVPGhJ{." x="-250" y="230">
<field name="VAR" id="O-NNhS!sS_oTSB?7JB]$">停止フラグ</field>
<value name="VALUE">
<block type="logic_boolean" id="3S{lEWhjtB=1Z6E$#vt?">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="ugj_control_button" id="#%IHyk19t$l}4$3`z{=x">
<value name="label">
<shadow type="text" id="Gy,;jCb(+@1)7W$*pc9;">
<field name="TEXT">停止</field>
</shadow>
</value>
<value name="textcolor">
<shadow type="colour_picker" id="z$a35:]5)iocrfp6^OsL">
<field name="COLOUR">#ffffff</field>
</shadow>
</value>
<value name="bgcolor">
<shadow type="colour_picker" id="X)Y}Vo.SaQC2+!_$N:2:">
<field name="COLOUR">#ff00ff</field>
</shadow>
</value>
<value name="title">
<shadow type="text" id="]WtKw+8DZm~NnY=j{+8p">
<field name="TEXT">ループを停止します</field>
</shadow>
</value>
<statement name="do">
<block type="variables_set" id="NFM7Mp]ym8)My,+bRgW|">
<field name="VAR" id="O-NNhS!sS_oTSB?7JB]$">停止フラグ</field>
<value name="VALUE">
<block type="logic_boolean" id="XE(jO2;SK_c$PtiNgeY[">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<next>
<block type="controls_whileUntil" id="LMyDUJ02*$bUjwr0c.B]">
<field name="MODE">UNTIL</field>
<value name="BOOL">
<block type="variables_get" id="2Ta/:QEx=nW|A7KOS3{g">
<field name="VAR" id="O-NNhS!sS_oTSB?7JB]$">停止フラグ</field>
</block>
</value>
<statement name="DO">
<block type="ugj_sleep" id="_C=mtOy|HJCo9#m;DS]e">
<value name="sec">
<shadow type="math_number" id="wG#wMyoc]}%!`N~(GH^=">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</category>
</xml>
<script src="./google-blockly/blockly_compressed.js"></script>
<script src="./google-blockly/javascript_compressed.js"></script>
<script src="./google-blockly/python_compressed.js"></script>
<script src="./google-blockly/blocks_compressed.js"></script>
<script src="./google-blockly/msg/js/ja.js"></script>
<script src="./google-blockly/custom-dialog.js"></script>
<script src="./ugj_blocks.js"></script>
<script src="./index_elutil.js"></script>
<script src="./index.js"></script>
<script src="./lib/beautify.min.js"></script>
<script src="./lib/prettify.js"></script>
</body>
</html>