仿真集成用于在线编写执行代码并对代码内容进行仿真模拟,以确保下发的代码逻辑能够正确执行。FBroker提供了快速构建在线仿真环境的相关组件。对于需要搭建仿真环境的平台可以基于此文档进行集成。
$ node -vv10.13.0
yarn add @flexem/broker-macro# ORnpm i @flexem/broker-macro
// 仿真函数依赖的变量表const variables: MacroVariableItem[] = [{id: 'guid',name: 'var1',deviceId: 0,regId: 0,mainAddr: 1,mainAddrWidth: 0,subAddr: 0,subAddrLen: 0,subIndex: 0,ioWidth: 0,byteOrder16: 0,byteOrder32: 0,byteOrderFloat: 0,}]// 调试器参数const dbgOptions: IDebuggerOptions = {onOutput: (result: string) => {// 结果输出console.log(result);},onWatchListChange: (items: WatchListItem[]) => {// 变量表结果输出console.log(items);}}// 编译代码并进行仿真运行const macroCompiler = createMacroCompiler(dbgOptions);const code = `function main() {// write some macro code herevar vaule = getU16("var1", 0);debug(vaule);return 0;}main();`;macroCompiler.runOrPause(code, variables);
仿真器可以结合代码编辑器来使用,实现在线代码编辑和仿真。代码编辑器推荐使用vscode所使用的monaco编辑器。FBroker已经内置了该代码编辑器并对其进行组件包装。如果基于broker-ui库进行开发的平台可以直接使用该组件。
yarn add @flexem/broker-ui# ORnpm i @flexem/broker-ui