Пример #1
0
void MainWindow::on_btn_genfile_clicked()
{
    FileSystem fsys;
    //QString test_data = "Test test test";

    QString config_string = config_compile();

    fsys.write_file(config_string);

}
Пример #2
0
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;
}