void MainWindow::on_btn_genfile_clicked() { FileSystem fsys; //QString test_data = "Test test test"; QString config_string = config_compile(); fsys.write_file(config_string); }
int cmd_config(FILE * f, int argc, char ** argv) { bool xfer = false; bool erase = false; bool compile = false; bool load = false; bool restart = false; int i; if (argc == 1) { fprintf(f, "Simulation Configuration:\n"); return config_show_info(f); } for (i = 1; i < argc; ++i) { if ((strcmp(argv[i], "compile") == 0) || (strcmp(argv[i], "c") == 0)) { erase = true; compile = true; } else if ((strcmp(argv[i], "erase") == 0) || (strcmp(argv[i], "e") == 0)) { erase = true; } else if ((strcmp(argv[i], "load") == 0) || (strcmp(argv[i], "l") == 0)) { load = true; } else if ((strcmp(argv[i], "xfer") == 0) || (strcmp(argv[i], "x") == 0)) { xfer = true; erase = true; compile = true; } else return SHELL_ERR_ARG_INVALID; } if (xfer) { slcdev_stop(); fprintf(f, "XMODEM receive: '%s'... ", "cfg.js"); if ((fs_xmodem_recv(f, "cfg.js")) < 0) { fprintf(f, "fs_xmodem_recv() failed!\r\n"); return -1; } fprintf(f, "\n"); } if (erase) { struct fs_dirent bin; fprintf(f, "Erasing...\n"); fs_dirent_get(&bin, FLASHFS_CFG_BIN); fs_file_unlink(&bin); } if (compile) { struct fs_dirent json; fs_dirent_get(&json, FLASHFS_CFG_JSON); if (config_is_sane() && !config_need_update(json.fp)) { fprintf(f, "Up-to-date.\n"); } else { struct microjs_rt * rt; slcdev_stop(); fprintf(f, "Compiling...\n"); if (config_compile(json.fp) < 0) { struct fs_dirent bin; fprintf(f, "# Error!\n"); /* purge the invalid config */ fs_dirent_get(&bin, FLASHFS_CFG_BIN); fs_file_unlink(&bin); return -1; } if (SLCDEV_VERBOSE()) { rt = symtab_rt_get((struct symtab *)slcdev_symbuf); fprintf(f, " - data: %d of %d\n", rt->data_sz, sizeof(slcdev_vm_data)); fprintf(f, " - stack: %d of %d\n", rt->stack_sz, sizeof(slcdev_vm_stack)); } fprintf(f, "Saving...\n"); if (config_save(json.fp) < 0) { fprintf(f, "# Error!\n"); return -1; } restart = true; } config_show_info(f); } if (load) { fprintf(f, "Loading...\n"); slcdev_stop(); if (config_load() < 0) { fprintf(f, "# Error!\n"); return -1; } restart = true; } if (restart) { /* restart simulation */ slcdev_event_raise(SLC_EV_SIM_START); } return 0; }