Blockly.JavaScript['average'] = function(block) {
var value_v1 = Blockly.JavaScript.valueToCode(block, 'v1', Blockly.JavaScript.ORDER_ATOMIC);
var value_v2 = Blockly.JavaScript.valueToCode(block, 'v2', Blockly.JavaScript.ORDER_ATOMIC);
// TODO: Assemble JavaScript into code variable.
var code = '(' + value_v1 + '+' + value_v2 + ')/2';
// TODO: Change ORDER_NONE to the correct strength.
return [code, Blockly.JavaScript.ORDER_NONE];
};
Blockly.JavaScript['console_log'] = function(block) {
var value_msg = Blockly.JavaScript.valueToCode(block, 'msg', Blockly.JavaScript.ORDER_ATOMIC);
// TODO: Assemble JavaScript into code variable.
var code = 'console.log(' + value_msg + ');';
return code;
};
Blockly.JavaScript['import file'] = function(block) {
var value_csv = block.getFieldValue("value_csv", Blockly.JavaScript.ORDER_MEMBER);
var code = value_csv;
//エラーを知らせてくれるやつ
//block.setWarningText("You get it!");
return [code,Blockly.JavaScript.ORDER_ATOMIC];
}; Blockly.JavaScript['kaiki'] = function(block) {
var value_csv = Blockly.JavaScript.valueToCode(block, 'read_csv', Blockly.JavaScript.ORDER_ATOMIC);
//value_csv=value_csv.replace( "(", "");
//value_csv=value_csv.replace( ")", "");
//var code = "$.ajax({type: 'POST',url: 'cgi-bin/sample.cgi',contentType: 'application/json',data:JSON.stringify("+value_csv+"),success: function(data) {var data_json=Object.entries(data);console.log(data_json); if (!data[0]) { return; } }, error:function(){alert('Ajax失敗');} });";
var code = "$.ajax({type: 'POST',url: 'cgi-bin/sample.cgi',contentType: 'application/json',data:JSON.stringify("+value_csv+"),async:false,success: function(data) {console.log(data);a = data; if (!data[0]) { return; } }, error:function(){alert('Ajax失敗');} })";
//var code = 'console.log('+JSON.stringify(value_csv)+');';
return [code,Blockly.JavaScript.ORDER_ATOMIC];
}; Blockly.JavaScript['file_out'] = function(block) {
var value_file = Blockly.JavaScript.valueToCode(block, 'file', Blockly.JavaScript.ORDER_ATOMIC);
// TODO: Assemble JavaScript into code variable.
var testArr = value_file;
//var code = 'console.log(typeof(' + testArr + '));console.log(' + testArr + ');';
//var code = 'console.log(typeof(' + testArr + '));';
//var code = 'var a = 0;\n'+ testArr + ';download(a, "test.csv");';
//var code = 'var a = 0;\n'+ testArr + ';console.log(typeof(a))';
var code = 'var a = 0;\n'+ testArr + ';(new CSV(a)).save(\'test.csv\');';
//var code = 'console.log('+testArr+');\n';
return code;
};
function download(content, filename) {
// create a temporary "a" element.
const a = document.createElement("a");
document.body.appendChild(a);
a.style = "display:none";
content = content.map((content)=>content.join(',')).join('\r\n');
const blob = new Blob([content], { type: "text/csv" });
const url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url); // release the used object.
a.parentNode.removeChild(a); // delete the temporary "a" element
}
class CSV {
constructor(data, keys = false) {
this.ARRAY = Symbol('ARRAY')
this.OBJECT = Symbol('OBJECT')
this.data = data
if (CSV.isArray(data)) {
if (0 == data.length) {
this.dataType = this.ARRAY
} else if (CSV.isObject(data[0])) {
this.dataType = this.OBJECT
} else if (CSV.isArray(data[0])) {
this.dataType = this.ARRAY
} else {
throw Error('Error: 未対応のデータ型です')
}
} else {
throw Error('Error: 未対応のデータ型です')
}
this.keys = keys }
toString() {
if (this.dataType === this.ARRAY) {
return this.data.map((record) => (
record.map((field) => (
CSV.prepare(field)
)).join(',')
)).join('\n')
} else if (this.dataType === this.OBJECT) {
const keys = this.keys || Array.from(this.extractKeys(this.data))
const arrayData = this.data.map((record) => (
keys.map((key) => record[key])
))
console.log([].concat([keys], arrayData))
return [].concat([keys], arrayData).map((record) => (
record.map((field) => (
CSV.prepare(field)
)).join(',')
)).join('\n')
}
}
save(filename = 'data.csv') {
if (!filename.match(/\.csv$/i)) { filename = filename + '.csv' }
//console.info('filename:', filename)
//console.table(this.data)
const csvStr = this.toString()
const bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
const blob = new Blob([bom, csvStr], {'type': 'text/csv'});
const url = window.URL || window.webkitURL;
const blobURL = url.createObjectURL(blob);
let a = document.createElement('a');
a.download = decodeURI(filename);
a.href = blobURL;
a.type = 'text/csv';
a.click(); }
extractKeys(data) {
return new Set([].concat(...this.data.map((record) => Object.keys(record))))
}
static prepare(field) {
return '"' + (''+field).replace(/"/g, '""') + '"'
}
static isObject(obj) {
return '[object Object]' === Object.prototype.toString.call(obj)
}
static isArray(obj) {
return '[object Array]' === Object.prototype.toString.call(obj)
}
}
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4927234/
https://www.jstage.jst.go.jp/article/qes/4/3/4_3/_article/-char/ja
https://www.jstage.jst.go.jp/result/global/-char/ja?languageKind=ja&item1=8&word1=%E7%94%B0%E5%8F%A3+%E7%8E%84%E4%B8%80&yearfrom=&cond1=2&translate=0&yearto=&bglobalSearch=false&fromPage=/search/global/_search/-char/ja
https://www.heisei-u.ac.jp/ba/fukui/pdf/analysis34.pdf
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/106108/1/0285-2.pdf
http://train.gomi.info/oatable/
| 月曜日 | 火曜日 | 水曜日 | 木曜日 | 金曜日 | |
| 1-2 | 研究会 | ||||
| 3-4 | |||||
| 5-6 | |||||
| 7-8 | |||||
| 9-10 | |||||
| 11-14 | 予備日 |
実験1に必要なファイル
#ref(): File not found: "sample.ino" at page "横井_backup"