Files
mixly3/boards/default_src/micropython/generators/ai_local.js
2025-10-28 15:43:30 +08:00

469 lines
20 KiB
JavaScript

import { Boards } from 'mixly';
export const yesorno = function (_, generator) {
var code = this.getFieldValue('state');
return [code, generator.ORDER_ATOMIC];
}
//voice part
export const VOICE_RECOGNITION_CONTROL = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';
var control = this.getFieldValue('control');
var code = 'onboard_bot.asr_en('+ control +')\n';
return code;
}
export const CI130X_OPEN_AND_CLOSE = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
var status = this.getFieldValue('status');
if(version == 'mixgo_sant'){
generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';
var code = 'onboard_asr.asr_en('+ status +')\n';
}
else if(version == 'mixgo_mini'){
generator.definitions_['import_mini_gx_ext_asr'] = 'from mini_gx import ext_asr';
var code = 'ext_asr.asr_en('+ status +')\n';
}
return code;
}
export const CI130X_IDENTIFY_AND_SAVE_SANT = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
if(version == 'mixgo_sant'){
generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';
var code = 'onboard_asr.cmd_id()\n';
}
else if(version == 'mixgo_mini'){
generator.definitions_['import_mini_gx_ext_asr'] = 'from mini_gx import ext_asr';
var code = 'ext_asr.cmd_id()\n';
}
return code;
}
export const CI130X_GET_WHETHER_IDENTIFY_SANT = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
if(version == 'mixgo_sant'){
generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';
var cmd = this.getFieldValue('cmd');
var code = 'onboard_asr.result(' + cmd + ')';
}
else if(version == 'mixgo_mini'){
generator.definitions_['import_mini_gx_ext_asr'] = 'from mini_gx import ext_asr';
var cmd = this.getFieldValue('cmd');
var code = 'ext_asr.result(' + cmd + ')';
}
return [code, generator.ORDER_ATOMIC];
}
export const CI130X_GET_THE_RECOGNIZED_CMD_SANT = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
if(version == 'mixgo_sant'){
generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';
var key = this.getFieldValue('key');
if (key == 'status1') {
var code = 'onboard_asr.status()[0]';
} else if (key == 'status2') {
var code = 'onboard_asr.status()[1]';
} else if (key == 'status3') {
var code = 'ext_asr.asr_en()';
} else {
var code = 'onboard_asr.' + key + '()';
}
}else if(version == 'mixgo_mini'){
generator.definitions_['import_mini_gx_ext_asr'] = 'from mini_gx import ext_asr';
var key = this.getFieldValue('key');
if (key == 'status1') {
var code = 'ext_asr.status()[0]';
} else if (key == 'status2') {
var code = 'ext_asr.status()[1]';
} else if (key == 'status3') {
var code = 'ext_asr.asr_en()';
} else {
var code = 'ext_asr.' + key + '()';
}
}
return [code, generator.ORDER_ATOMIC];
}
export const CI130X_BROADCAST_SANT = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
if(version == 'mixgo_sant'){
generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';
var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);
var star = this.getFieldValue('star');
var end = this.getFieldValue('end');
var code = 'onboard_asr.play(' + star + ', ' + num + ', ' + end + ')\n';
}else if(version == 'mixgo_mini'){
generator.definitions_['import_mini_gx_ext_asr'] = 'from mini_gx import ext_asr';
var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);
var star = this.getFieldValue('star');
var end = this.getFieldValue('end');
var code = 'ext_asr.play(' + star + ', ' + num + ', ' + end + ')\n';
}
return code;
}
export const CI130X_SET_SYSTEM_CMD_SANT = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
if(version == 'mixgo_sant'){
generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';
var cmd = this.getFieldValue('cmd');
var code = 'onboard_asr.sys_cmd(' + cmd + ')\n';
}else if(version == 'mixgo_mini'){
generator.definitions_['import_mini_gx_ext_asr'] = 'from mini_gx import ext_asr';
var cmd = this.getFieldValue('cmd');
var code = 'ext_asr.sys_cmd(' + cmd + ')\n';
}
return code;
}
export const CI130X_BROADCAST_SYSTEM_TIME = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
var code = 'onboard_asr.play_time(detail=' + bool + ')\n';
return code;
}
//graph part
export const CREATE_CAMERA = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_Camera_FrameSize'] = 'from camera import Camera,FrameSize';
var cmd = this.getFieldValue('cmd');
var hm = generator.valueToCode(this, 'HM', generator.ORDER_ATOMIC);
var vf = generator.valueToCode(this, 'VF', generator.ORDER_ATOMIC);
var code = 'camera = Camera(FrameSize.' + cmd + ',hmirror='+ hm + ',vflip='+ vf +')\n';
return code;
}
export const SHOOT_AND_SAVE_PICTURE = function (_, generator) {
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var code = 'camera.snapshot(' + direct + ')\n';
return code;
}
export const GET_IMAGE_AND_SAVE = function (_, generator) {
generator.definitions_['camera_import_Image'] = 'from camera import Image';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var q = generator.valueToCode(this, 'quality', generator.ORDER_ATOMIC);
var a = this.getFieldValue('angle');
var code = 'Image.save('+ sub + ',path=' + direct + ',quality='+ q + ',rotation=' + a + ')\n';
return code;
}
export const OPEN_IMAGE = function (_, generator) {
generator.definitions_['camera_import_Image'] = 'from camera import Image';
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var a = this.getFieldValue('angle');
var code = 'Image.open(path=' + direct +',rotation=' + a + ')';
return [code, generator.ORDER_ATOMIC];
}
export const CAMERA_LOOGOUT = function (_, generator) {
var code = 'camera.deinit()\n';
return code;
}
export const GET_PICTURE_DATA_EXACT = function (_, generator) {
// var kind = this.getFieldValue('kind');
var code = 'camera.capture()';
return [code, generator.ORDER_ATOMIC];
}
export const CONVERT_IMAGE_TO_JPG = function (_, generator) {
generator.definitions_['camera_import_Image'] = 'from camera import Image';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var kind = this.getFieldValue('kind');
var code = 'Image.convert(' + sub + ', formats=' + kind + ')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_PICTURE_DATA_WHS = function (_, generator) {
generator.definitions_['camera_import_Image'] = 'from camera import Image';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var kind = this.getFieldValue('kind');
var code = sub + '.' + kind ;
return [code, generator.ORDER_ATOMIC];
}
export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var s = this.getFieldValue('sync');
var code = 'onboard_tft.display(' + sub +', sync='+ s +')\n';
return code;
}
export const SCREEN_DISPLAY_IMAGE = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var a = this.getFieldValue('angle');
var s = this.getFieldValue('sync');
var code = 'onboard_tft.display(' + direct + ',rotation=' + a + ',sync='+ s + ')\n';
return code;
}
export const GET_SCREEN_IMAGE = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var code = 'onboard_tft.screenshot()';
return [code, generator.ORDER_ATOMIC];
}
export const AI_CAMERA_INIT = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var cmd = this.getFieldValue('kind');
var width = this.getFieldValue('width');
var height = this.getFieldValue('height');
var code = sub +' = esp_dl.'+cmd + '(width='+width+', height='+height+')\n';
return code;
}
export const AI_CAMERA_INIT_FACERECOGNIZE = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var path = generator.valueToCode(this, 'PATH', generator.ORDER_ATOMIC);
var width = this.getFieldValue('width');
var height = this.getFieldValue('height');
var code = sub +' = esp_dl.FaceRecognizer(width='+width+', height='+height+', db_path='+ path +')\n';
return code;
}
export const MODEL_LOGOUT = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = 'del '+sub + '\n';
return code;
}
export const MODEL_RUN = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var frame = generator.valueToCode(this, 'FRAME', generator.ORDER_ATOMIC);
var code = sub + '.run(' + frame +'.image)';
return [code, generator.ORDER_ATOMIC];
}
export const MODEL_WHETHER_RUN_SUCCEED = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = 'esp_dl.analyze(' + sub +')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_HOW_MUCH_RECOGNITION = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = 'esp_dl.analyze(' + sub +',"len")';
return [code, generator.ORDER_ATOMIC];
}
export const GET_NO_RECOGNITION = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var no = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var code = 'esp_dl.analyze(' + sub +',"data",'+ no + ')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_NO_XY_RECOGNITION = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var no = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var coord = this.getFieldValue('coord');
if(coord == "all"){
var code = 'esp_dl.analyze(' + sub +',"box",'+ no + ')';
}else{
var code = 'esp_dl.analyze(' + sub +',"box",'+ no + ')['+ coord +']';
}
return [code, generator.ORDER_ATOMIC];
}
export const GET_NO_XY_RECOGNITION_FACE = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var no = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var part = this.getFieldValue('part');
if(part == "all"){
var code = 'esp_dl.analyze(' + sub +',"features",'+ no + ')';
}else{
var code = 'esp_dl.analyze(' + sub +',"features",'+ no + ')' +part;
}
return [code, generator.ORDER_ATOMIC];
}
export const GET_NO_CAT_OR_FACE_RECOGNITION = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var no = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var code = 'esp_dl.analyze(' + sub +',"score",'+ no + ')';
return [code, generator.ORDER_ATOMIC];
}
export const Register_color_recognition_fixed= function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var color = this.getFieldValue('color');
var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC);
if (color == "red"){
var code = sub + '.register_color((170, 100, 100), (10, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "green"){
var code = sub + '.register_color((35, 100, 100), (85, 255, 255),"'+ color +'",' + area + ')\n';
}else if(color == "blue"){
var code = sub + '.register_color((100, 100, 100), (130, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "yellow"){
var code = sub + '.register_color((20, 100, 100), (35, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "cyan"){
var code = sub + '.register_color((85, 100, 100), (100, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "purple"){
var code = sub + '.register_color((130, 100, 100), (150, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "black"){
var code = sub + '.register_color((0, 0, 0), (180, 255, 50),"'+ color +'", '+ area + ')\n';
}else if(color == "white"){
var code = sub + '.register_color((0, 0, 200), (180, 50, 255),"'+ color +'", '+ area + ')\n';
}
return code;
}
export const Register_color_recognition = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var min = generator.valueToCode(this, 'MIN', generator.ORDER_ATOMIC);
var max = generator.valueToCode(this, 'MAX', generator.ORDER_ATOMIC);
var color = generator.valueToCode(this, 'COLOR', generator.ORDER_ATOMIC);
var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC);
var code = sub + '.register_color(' + min +', '+ max +', '+ color +', '+ area + ')\n';
return code;
}
export const REGISTER_NEW_FACE = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var image = generator.valueToCode(this, 'IMAGE', generator.ORDER_ATOMIC);
var name = generator.valueToCode(this, 'NAME', generator.ORDER_ATOMIC);
var code = sub + '.enroll(' + image +'.image, name='+ name +', validate = 1)';
return [code, generator.ORDER_ATOMIC];
}
export const DELETE_FACE_FROM_DATABASE = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var id = generator.valueToCode(this, 'ID', generator.ORDER_ATOMIC);
var code = sub + '.delete_face(' + id + ')\n';
return code;
}
export const DELETE_FACE_ALL = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + '.clear_face()\n';
return code;
}
export const PRINT_FACE_DATABASE = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + '.print_database()\n';
return code;
}
export const GET_QR_CODE_RECOGNITION_DATA = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + '.code_recognition()';
return [code, generator.ORDER_ATOMIC];
}
export const GET_COLOR_DETECTION_NUM = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var color = this.getFieldValue('color');
var code = sub + '.color_detection('+ color +",'len')";
return [code, generator.ORDER_ATOMIC];
}
export const GET_COLOR_DETECTION_LOCATION = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var color = this.getFieldValue('color');
var code = sub + '.color_detection('+ color +",'pos',"+ num +')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_CAT_FACE_DETECTION_NUM = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + ".cat_detection('len')";
return [code, generator.ORDER_ATOMIC];
}
export const GET_CAT_FACE_DETECTION_LOCATION = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var code = sub + ".cat_detection('pos',"+ num +')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_FACE_DETECTION_NUM = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + ".face_detection('len')";
return [code, generator.ORDER_ATOMIC];
}
export const GET_FACE_DETECTION_LOCATION = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var code = sub + ".face_detection('pos',"+ num +')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_FACE_DETECTION_KEYPOINT_LOCATION = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var kp = this.getFieldValue('kp');
var code = sub + ".face_detection('keypoint',"+ num +','+ kp +')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_FACE_RECOGNITION_ID = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + ".face_recognition('len')";
return [code, generator.ORDER_ATOMIC];
}
export const GET_FACE_RECOGNITION_ID_LOCATION = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var code = sub + ".face_recognition('pos',"+ num +')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_FACE_RECOGNITION_ID_KEYPOINT_LOCATION = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
var kp = this.getFieldValue('kp');
var code = sub + ".face_recognition('keypoint',"+ num +','+ kp +')';
return [code, generator.ORDER_ATOMIC];
}
export const PEOPLE_FACE_ENROLL = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + '.face_enroll()';
return [code, generator.ORDER_ATOMIC];
}
export const DELETE_PEOPLE_FACE_ID = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var id = generator.valueToCode(this, 'ID', generator.ORDER_ATOMIC);
var code = sub + '.face_delete('+ id +')\n';
return code;
}
export const AI_STOP_ACQUISITION = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + '.stop()';
return [code, generator.ORDER_ATOMIC];
}
export const MIXIO_REPORT_IMAGE_DATA = function (_, generator) {
generator.definitions_['import_base64'] = 'import base64';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = 'mixiot.image_base64('+ sub +')';
return [code, generator.ORDER_ATOMIC];
}