366 lines
16 KiB
JavaScript
366 lines
16 KiB
JavaScript
export const iot_wifi_connect = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC);
|
||
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
|
||
var code = 'mixiot.wlan_connect(' + username + ', ' + password + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_onenet_connect = function (_, generator) {
|
||
generator.definitions_['import_onenet'] = "import onenet";
|
||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
var client = generator.valueToCode(this, 'CLIENT', generator.ORDER_ATOMIC);
|
||
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||
var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);
|
||
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
|
||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||
var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || 'None';
|
||
var code = v + ' = onenet.init_MQTT_client(' + client + ', ' + server + ', ' + username + ', ' + password + ', ' + topic + ', ' + subscribe + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_onenet_disconnect = function (_, generator) {
|
||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
generator.definitions_['import_onenet'] = "import onenet";
|
||
var code = v + '.do_disconnect()\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_onenet_publish_dict = function (_, generator) {
|
||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
var d = generator.valueToCode(this, 'DICT', generator.ORDER_ATOMIC);
|
||
var check = this.getFieldValue("is_print") == 'TRUE' ? 'True' : 'False';
|
||
generator.definitions_['import_onenet'] = "import onenet";
|
||
var code = v + '.publish(' + d + ', is_print=' + check + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_onenet_check = function (_, generator) {
|
||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
generator.definitions_['import_onenet'] = "import onenet";
|
||
var code = v + '.check_msg()\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_onenet_publish = function (_, generator) {
|
||
// Create a list with any number of elements of any type.
|
||
|
||
//var size=window.parseFloat(this.getFieldValue('SIZE'));
|
||
generator.definitions_['import_onenet'] = "import onenet";
|
||
var ck = new Array(this.itemCount_);
|
||
var cv = new Array(this.itemCount_);
|
||
var ct = new Array(this.itemCount_);
|
||
|
||
var default_value = '0';
|
||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
|
||
for (let n = 0; n < this.itemCount_; n++) {
|
||
var keyName = this.getFieldValue('KEY' + n);
|
||
ck[n] = keyName;
|
||
}
|
||
for (let n = 0; n < this.itemCount_; n++) {
|
||
cv[n] = generator.valueToCode(this, 'ADD' + n,
|
||
generator.ORDER_NONE) || default_value;
|
||
}
|
||
var code = v + ".publish({";
|
||
for (let n = 0; n < this.itemCount_; n++) {
|
||
ct[n] = ck[n] + ': ' + cv[n];
|
||
}
|
||
//var code = "c.publish('$dp', pubData("+ '{' + code.join(', ') + '})\n';
|
||
//var code =''+varName+'['+size+"]"+'='+ '{' + code.join(', ') + '}\n';
|
||
//generator.setups_['setup_lists'+varName] = code;
|
||
code = code + ct.join(', ') + "})\n";
|
||
return code;
|
||
}
|
||
|
||
export const iot_mixio_connect = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
generator.definitions_['import_machine'] = "import machine";
|
||
generator.definitions_['import_ubinascii_hexlify'] = "from ubinascii import hexlify";
|
||
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||
var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);
|
||
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
|
||
var project = generator.valueToCode(this, 'PROJECT', generator.ORDER_ATOMIC);
|
||
//var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || '0';
|
||
var a = "'" + username.replace("'", "").replace("'", "") + "/" + project.replace("'", "").replace("'", "") + "/'"
|
||
var code = 'MQTT_USR_PRJ = ' + a + '\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\n';
|
||
return code;
|
||
}
|
||
|
||
export const IOT_MIXIO_PUBLISH = function (_, generator) {
|
||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||
var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var code = 'mqtt_client.publish(MQTT_USR_PRJ + ' + topic + ', ' + msg + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const IOT_MIXIO_PUBLISHEX = function (_, generator) {
|
||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||
var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);
|
||
var q = this.getFieldValue('quality');
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var code = 'mqtt_client.publish(MQTT_USR_PRJ + ' + topic + ', ' + msg + ', qos='+ q +')\n';
|
||
return code;
|
||
}
|
||
|
||
export const IOT_MIXIO_SUBSCRIBE = function (_, generator) {
|
||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||
var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var code = 'mqtt_client.set_callback(' + topic + ',' + method + ', MQTT_USR_PRJ)\n';
|
||
code += 'mqtt_client.subscribe(MQTT_USR_PRJ + ' + topic + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_mixio_disconnect = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var code = 'mqtt_client.disconnect(MQTT_USR_PRJ)\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_mixio_connect_only = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var code = 'mqtt_client.connect()\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_mixio_check = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var code = 'mqtt_client.check_msg()\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_mixio_format_topic = function (_, generator) {
|
||
var code = 'mqtt_client.decode("utf-8").split("/")[-1]';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_mixio_format_msg = function (_, generator) {
|
||
var code = 'mqtt_client.decode("utf-8")';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const IOT_FORMATTING = function (_, generator) {
|
||
generator.definitions_['import_mixpy'] = "import mixpy";
|
||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
var code = 'mixpy.format_content(' + v + ', mqtt_client.client_id)';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const IOT_FORMAT_STRING = function (_, generator) {
|
||
generator.definitions_['import_mixpy'] = "import mixpy";
|
||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
var code = 'mixpy.format_str(' + v + ')';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = function (_, generator) {
|
||
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||
// var port = '1883';
|
||
var share_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
generator.definitions_['import_mixpy_analyse_sharekey'] = "from mixpy import analyse_sharekey";
|
||
// var mac_address = 'str(binascii.hexlify(wifi.radio.mac_address))[2:14]'
|
||
// var socket_pool = 'socketpool.SocketPool(wifi.radio)'
|
||
// var ssl_context = 'ssl.create_default_context()'
|
||
var code = 'sk = analyse_sharekey(\'https://' + server.substring(1, server.length - 1) + '/mixio-php/sharekey.php?sk=' + share_code + '\')\n' +
|
||
'MQTT_USR_PRJ = sk[0]+\'/\'+sk[1]+\'/\'\n';
|
||
|
||
// 根据server是否包含":"来生成不同的mqtt_client代码
|
||
if (server.indexOf(':') !== -1) {
|
||
// 包含":",使用server.substring(1, server.indexOf(':'))
|
||
code += 'mqtt_client = mixiot.init_MQTT_client(' + server.substring(0, server.indexOf(':')) + server.substring(server.length - 1) + ', sk[0], sk[2]' + ', MQTT_USR_PRJ)\n';
|
||
} else {
|
||
// 不包含":",使用完整的server(去掉首尾的引号)
|
||
code += 'mqtt_client = mixiot.init_MQTT_client(' + server.substring(0, server.length - 1)+ server.substring(server.length - 1) + ', sk[0], sk[2]' + ', MQTT_USR_PRJ)\n';
|
||
}
|
||
return code;
|
||
}
|
||
|
||
|
||
export const iot_mixly_key = function (_, generator) {
|
||
var code = this.getFieldValue('VISITOR_ID');
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||
// var port = '1883';
|
||
var username = '"MixIO_public"';
|
||
var password = '"MixIO_public"';
|
||
var mixly_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);
|
||
var a = '"MixIO/' + mixly_code + '/default/"'
|
||
// var mac_address = 'str(binascii.hexlify(wifi.radio.mac_address))[2:14]'
|
||
// var socket_pool = 'socketpool.SocketPool(wifi.radio)'
|
||
// var ssl_context = 'ssl.create_default_context()'
|
||
var code = 'MQTT_USR_PRJ = ' + a + '\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\n';
|
||
return code;
|
||
}
|
||
|
||
export const IOT_EMQX_PING = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var code = 'mqtt_client.pingSync()';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const IOT_MIXIO_NTP = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);
|
||
var code = 'mixiot.ntp(' + addr + ')';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_client_onboard = function (_, generator) {
|
||
var code = 'mqtt_client';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_http_client = function (_, generator) {
|
||
generator.definitions_['import_debugnet'] = "import debugnet";
|
||
var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);
|
||
var key = this.getFieldValue('key');
|
||
var code = 'HTTP_client = debugnet.request("GET", ' + addr + ', debug=' + key + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_http_data = function (_, generator) {
|
||
generator.definitions_['import_debugnet'] = "import debugnet";
|
||
var key = this.getFieldValue('key');
|
||
var code = 'HTTP_client.' + key;
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_mqtt_client = function (_, generator) {
|
||
generator.definitions_['import_debugnet'] = "import debugnet";
|
||
var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);
|
||
var key = this.getFieldValue('key2');
|
||
var code = 'mqtt_client = debugnet.init_MQTT_client(' + addr + ', "MixIO_public", "MixIO_public", "MixIO/3QBAGKRL/default/",debug=' + key + ')\n';
|
||
code += 'mqtt_client.subscribe("$SYS/hello")\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_mqtt_data = function (_, generator) {
|
||
generator.definitions_['import_mixiot'] = "import mixiot";
|
||
var key = this.getFieldValue('key');
|
||
var code = 'mqtt_client.' + key;
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_connect_ollama = function (_, generator) {
|
||
generator.definitions_['import_ollama'] = "from ollama import Ollama";
|
||
var ser = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||
var name = generator.valueToCode(this, 'NAME', generator.ORDER_ATOMIC);
|
||
var num = generator.valueToCode(this, 'NUMBER', generator.ORDER_ATOMIC);
|
||
var code = 'llm = Ollama(' + ser + ', ' + name + ', ' + num + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const IOT_CONNECT_OLLAMA = iot_connect_ollama;
|
||
|
||
export const iot_connect_openai = function (_, generator) {
|
||
generator.definitions_['import_openai'] = "from openai import OpenAI";
|
||
var ser = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
|
||
var key = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);
|
||
var name = generator.valueToCode(this, 'NAME', generator.ORDER_ATOMIC);
|
||
var num = generator.valueToCode(this, 'NUMBER', generator.ORDER_ATOMIC);
|
||
var code = `llm = OpenAI(${ser}, ${key}, ${name}, ${num})\n`;
|
||
return code;
|
||
}
|
||
|
||
export const use_ollama_llm_to_chat = function (_, generator) {
|
||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||
var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);
|
||
var code = 'llm.chat(' + topic + ', ' + method + ')\n';
|
||
return code;
|
||
}
|
||
|
||
export const use_ollama_llm_to_chat_return = function (_, generator) {
|
||
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
|
||
var code = 'llm.chat(' + topic + ')';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
// export const ollama_set_timeout = function (_,generator) {
|
||
// var t = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
// var code = 'llm.set_timeout(' + t + ')\n';
|
||
// return code;
|
||
// }
|
||
|
||
// export const ollama_set_max_retries = function (_,generator) {
|
||
// var t = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||
// var code = 'llm.set_max_retries(' + t + ')\n';
|
||
// return code;
|
||
// }
|
||
|
||
// export const ollama_set_custom_url = function (_,generator) {
|
||
// var t = generator.valueToCode(this, 'TEXT', generator.ORDER_ATOMIC);
|
||
// var code = 'llm.set_custom_url(' + t + ')\n';
|
||
// return code;
|
||
// }
|
||
|
||
// export const ollama_select_model = function (_,generator) {
|
||
// var t = generator.valueToCode(this, 'TEXT', generator.ORDER_ATOMIC);
|
||
// var code = 'llm.select_model(' + t + ')\n';
|
||
// return code;
|
||
// }
|
||
|
||
// export const ollama_clear_user_history = function (_,generator) {
|
||
// var code = 'llm.clear_user_history()\n';
|
||
// return code;
|
||
// }
|
||
|
||
export const ollama_empty_history = function () {
|
||
var code = 'llm.empty_history()\n';
|
||
return code;
|
||
}
|
||
|
||
export const iot_tiny_web_db_init = function (_,generator) {
|
||
generator.definitions_['import_tiny_webdb'] = 'import tiny_webdb';
|
||
const addr = generator.valueToCode(this, 'ADDR', generator.ORDER_ATOMIC);
|
||
const username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);
|
||
const password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
|
||
const code = `webdb = tiny_webdb.TinyWebDB(${addr}, ${username}, ${password})\n`;
|
||
return code;
|
||
}
|
||
|
||
export const iot_tiny_web_db_init_with_mqtt = function (_,generator) {
|
||
generator.definitions_['import_tiny_webdb'] = 'import tiny_webdb';
|
||
const mqtt = generator.valueToCode(this, 'MQTT', generator.ORDER_ATOMIC);
|
||
const code = `webdb = tiny_webdb.TinyWebDB(${mqtt})\n`;
|
||
return code;
|
||
}
|
||
|
||
export const iot_tiny_web_db_update = function (_,generator) {
|
||
const tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC);
|
||
const value = generator.valueToCode(this, 'VALUE', generator.ORDER_ATOMIC);
|
||
const code = `webdb.update(${tag}, ${value})\n`;
|
||
return code;
|
||
}
|
||
|
||
export const iot_tiny_web_db_get = function (_,generator) {
|
||
const tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC);
|
||
const code = `webdb.get(${tag})`;
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_tiny_web_db_count = function (_,generator) {
|
||
const code = 'webdb.count()';
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_tiny_web_db_search = function (_,generator) {
|
||
const no = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
|
||
const count = generator.valueToCode(this, 'COUNT', generator.ORDER_ATOMIC);
|
||
const tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC);
|
||
const dtype = this.getFieldValue('DTYPE');
|
||
const code = `webdb.search(${no}, ${count}, ${tag}, '${dtype}')`;
|
||
return [code, generator.ORDER_ATOMIC];
|
||
}
|
||
|
||
export const iot_tiny_web_db_delete = function (_,generator) {
|
||
const tag = generator.valueToCode(this, 'TAG', generator.ORDER_ATOMIC);
|
||
const code = `webdb.delete(${tag})\n`;
|
||
return code;
|
||
} |