@windypro-rourou/dsh-eda 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/README.md +1 -1
  2. package/lib/backend.js +49 -0
  3. package/lib/capabilities.js +6 -2
  4. package/lib/client.js +33 -0
  5. package/lib/index.js +197 -3
  6. package/package.json +10 -1
  7. package/skill/INDEX.md +10 -8
  8. package/skill/README.md +125 -0
  9. package/skill/README.zh-Hans.md +125 -0
  10. package/skill/SKILL.md +746 -746
  11. package/skill/format/index.md +152 -152
  12. package/skill/format/pcb/3d.md +166 -166
  13. package/skill/format/pcb/attr.md +63 -63
  14. package/skill/format/pcb/common.md +306 -306
  15. package/skill/format/pcb/component.md +132 -132
  16. package/skill/format/pcb/dimension.md +58 -58
  17. package/skill/format/pcb/index.md +17 -17
  18. package/skill/format/pcb/obj.md +43 -43
  19. package/skill/format/pcb/pad_via.md +151 -151
  20. package/skill/format/pcb/panel.md +64 -64
  21. package/skill/format/pcb/partition.md +43 -43
  22. package/skill/format/pcb/primitive.md +196 -196
  23. package/skill/format/pcb/rule.md +71 -71
  24. package/skill/format/pcb/shape.md +441 -441
  25. package/skill/format/pcb/text.md +62 -62
  26. package/skill/format/project/blob.md +30 -30
  27. package/skill/format/project/common.md +42 -42
  28. package/skill/format/project/group.md +62 -62
  29. package/skill/format/project/index.md +12 -12
  30. package/skill/format/project/instance.md +32 -32
  31. package/skill/format/project/meta.md +189 -189
  32. package/skill/format/project/variant.md +30 -30
  33. package/skill/format/schematic/attr.md +41 -41
  34. package/skill/format/schematic/common.md +47 -47
  35. package/skill/format/schematic/component.md +91 -91
  36. package/skill/format/schematic/index.md +14 -14
  37. package/skill/format/schematic/obj.md +41 -41
  38. package/skill/format/schematic/pin.md +59 -59
  39. package/skill/format/schematic/shape.md +231 -231
  40. package/skill/format/schematic/structure.md +53 -53
  41. package/skill/format/schematic/table.md +109 -109
  42. package/skill/format/schematic/text.md +47 -47
  43. package/skill/format/schematic/wire.md +132 -132
  44. package/skill/guide/ancillary-projects/easyeda-api-sdk.md +1 -0
  45. package/skill/guide/ancillary-projects/pro-api-types.md +5 -5
  46. package/skill/guide/ancillary-projects.md +10 -10
  47. package/skill/guide/cli.md +1510 -0
  48. package/skill/guide/error-handling.md +38 -38
  49. package/skill/guide/extension-json.md +135 -135
  50. package/skill/guide/extensions-marketplace.md +61 -61
  51. package/skill/guide/how-to-start.md +316 -301
  52. package/skill/guide/i18n.md +57 -57
  53. package/skill/guide/index.md +7 -7
  54. package/skill/guide/inline-frame.md +20 -20
  55. package/skill/guide/invoke-apis.md +81 -81
  56. package/skill/guide/stability.md +37 -37
  57. package/skill/references/_index.md +471 -398
  58. package/skill/references/_quick-reference.md +3103 -3028
  59. package/skill/references/classes/DMT_Board.md +537 -533
  60. package/skill/references/classes/DMT_EditorControl.md +1736 -1736
  61. package/skill/references/classes/DMT_Event.md +356 -356
  62. package/skill/references/classes/DMT_Folder.md +775 -775
  63. package/skill/references/classes/DMT_Panel.md +531 -531
  64. package/skill/references/classes/DMT_Pcb.md +579 -575
  65. package/skill/references/classes/DMT_Project.md +734 -573
  66. package/skill/references/classes/DMT_Schematic.md +1482 -1477
  67. package/skill/references/classes/DMT_SelectControl.md +96 -96
  68. package/skill/references/classes/DMT_Team.md +172 -172
  69. package/skill/references/classes/DMT_Workspace.md +198 -198
  70. package/skill/references/classes/EDA.md +1001 -961
  71. package/skill/references/classes/IPCB_ComplexPolygon.md +299 -299
  72. package/skill/references/classes/IPCB_Polygon.md +175 -175
  73. package/skill/references/classes/IPCB_PrimitiveArc.md +1901 -1901
  74. package/skill/references/classes/IPCB_PrimitiveAttribute.md +2993 -2993
  75. package/skill/references/classes/IPCB_PrimitiveComponent.md +2624 -2627
  76. package/skill/references/classes/IPCB_PrimitiveComponentPad.md +410 -410
  77. package/skill/references/classes/IPCB_PrimitiveDimension.md +1419 -1419
  78. package/skill/references/classes/IPCB_PrimitiveFill.md +1325 -1325
  79. package/skill/references/classes/IPCB_PrimitiveImage.md +1461 -1461
  80. package/skill/references/classes/IPCB_PrimitiveLine.md +1639 -1639
  81. package/skill/references/classes/IPCB_PrimitiveObject.md +1700 -1700
  82. package/skill/references/classes/IPCB_PrimitivePad.md +3155 -3155
  83. package/skill/references/classes/IPCB_PrimitivePolyline.md +1193 -1193
  84. package/skill/references/classes/IPCB_PrimitivePour.md +1858 -1858
  85. package/skill/references/classes/IPCB_PrimitivePoured.md +556 -556
  86. package/skill/references/classes/IPCB_PrimitiveRegion.md +1332 -1332
  87. package/skill/references/classes/IPCB_PrimitiveString.md +2315 -2315
  88. package/skill/references/classes/IPCB_PrimitiveVia.md +1588 -1588
  89. package/skill/references/classes/ISCH_PrimitiveArc.md +1676 -1676
  90. package/skill/references/classes/ISCH_PrimitiveAttribute.md +2541 -2541
  91. package/skill/references/classes/ISCH_PrimitiveBus.md +973 -973
  92. package/skill/references/classes/ISCH_PrimitiveCbbSymbolComponent.md +260 -260
  93. package/skill/references/classes/ISCH_PrimitiveCircle.md +1392 -1392
  94. package/skill/references/classes/ISCH_PrimitiveComponent.md +2910 -2913
  95. package/skill/references/classes/ISCH_PrimitiveComponentPin.md +155 -155
  96. package/skill/references/classes/ISCH_PrimitiveObject.md +960 -960
  97. package/skill/references/classes/ISCH_PrimitivePin.md +2402 -2402
  98. package/skill/references/classes/ISCH_PrimitivePolygon.md +1028 -1028
  99. package/skill/references/classes/ISCH_PrimitiveRectangle.md +1777 -1777
  100. package/skill/references/classes/ISCH_PrimitiveText.md +1771 -1771
  101. package/skill/references/classes/ISCH_PrimitiveWire.md +973 -973
  102. package/skill/references/classes/LIB_3DModel.md +782 -780
  103. package/skill/references/classes/LIB_Cbb.md +957 -957
  104. package/skill/references/classes/LIB_Classification.md +969 -965
  105. package/skill/references/classes/LIB_Device.md +1222 -1221
  106. package/skill/references/classes/LIB_Footprint.md +1298 -1153
  107. package/skill/references/classes/LIB_LibrariesList.md +361 -329
  108. package/skill/references/classes/LIB_PanelLibrary.md +855 -855
  109. package/skill/references/classes/LIB_SelectControl.md +89 -89
  110. package/skill/references/classes/LIB_SimulationModel.md +807 -821
  111. package/skill/references/classes/LIB_Symbol.md +1341 -1195
  112. package/skill/references/classes/PCB_Document.md +1770 -1754
  113. package/skill/references/classes/PCB_Drc.md +3379 -3375
  114. package/skill/references/classes/PCB_Event.md +1166 -1081
  115. package/skill/references/classes/PCB_ImageTool.md +363 -0
  116. package/skill/references/classes/PCB_Layer.md +1915 -1911
  117. package/skill/references/classes/PCB_ManufactureData.md +2968 -2968
  118. package/skill/references/classes/PCB_MathPolygon.md +916 -785
  119. package/skill/references/classes/PCB_Net.md +1128 -1128
  120. package/skill/references/classes/PCB_Primitive.md +217 -217
  121. package/skill/references/classes/PCB_PrimitiveArc.md +820 -894
  122. package/skill/references/classes/PCB_PrimitiveAttribute.md +635 -717
  123. package/skill/references/classes/PCB_PrimitiveComponent.md +1050 -1050
  124. package/skill/references/classes/PCB_PrimitiveDimension.md +789 -833
  125. package/skill/references/classes/PCB_PrimitiveFill.md +783 -861
  126. package/skill/references/classes/PCB_PrimitiveImage.md +803 -875
  127. package/skill/references/classes/PCB_PrimitiveLine.md +787 -858
  128. package/skill/references/classes/PCB_PrimitiveObject.md +796 -800
  129. package/skill/references/classes/PCB_PrimitivePad.md +947 -944
  130. package/skill/references/classes/PCB_PrimitivePolyline.md +744 -819
  131. package/skill/references/classes/PCB_PrimitivePour.md +808 -845
  132. package/skill/references/classes/PCB_PrimitivePoured.md +363 -363
  133. package/skill/references/classes/PCB_PrimitiveRegion.md +765 -799
  134. package/skill/references/classes/PCB_PrimitiveString.md +828 -910
  135. package/skill/references/classes/PCB_PrimitiveVia.md +761 -765
  136. package/skill/references/classes/PCB_RayTracerEngine.md +603 -263
  137. package/skill/references/classes/PCB_SelectControl.md +495 -495
  138. package/skill/references/classes/PCB_Tool.md +9 -0
  139. package/skill/references/classes/PNL_Document.md +83 -83
  140. package/skill/references/classes/SCH_Document.md +797 -809
  141. package/skill/references/classes/SCH_Drc.md +246 -242
  142. package/skill/references/classes/SCH_Event.md +583 -583
  143. package/skill/references/classes/SCH_ManufactureData.md +1209 -1205
  144. package/skill/references/classes/SCH_Net.md +200 -200
  145. package/skill/references/classes/SCH_Netlist.md +191 -191
  146. package/skill/references/classes/SCH_Primitive.md +337 -337
  147. package/skill/references/classes/SCH_PrimitiveArc.md +686 -692
  148. package/skill/references/classes/SCH_PrimitiveAttribute.md +579 -590
  149. package/skill/references/classes/SCH_PrimitiveBus.md +618 -624
  150. package/skill/references/classes/SCH_PrimitiveCircle.md +667 -683
  151. package/skill/references/classes/SCH_PrimitiveComponent.md +2256 -2240
  152. package/skill/references/classes/SCH_PrimitiveObject.md +666 -666
  153. package/skill/references/classes/SCH_PrimitivePin.md +737 -754
  154. package/skill/references/classes/SCH_PrimitivePolygon.md +621 -627
  155. package/skill/references/classes/SCH_PrimitiveRectangle.md +715 -731
  156. package/skill/references/classes/SCH_PrimitiveText.md +736 -746
  157. package/skill/references/classes/SCH_PrimitiveWire.md +701 -703
  158. package/skill/references/classes/SCH_SelectControl.md +520 -520
  159. package/skill/references/classes/SCH_SimulationEngine.md +133 -133
  160. package/skill/references/classes/SCH_Utils.md +121 -121
  161. package/skill/references/classes/SYS_ClientUrl.md +173 -173
  162. package/skill/references/classes/SYS_Dialog.md +825 -825
  163. package/skill/references/classes/SYS_Environment.md +640 -502
  164. package/skill/references/classes/SYS_ExternalApi.md +246 -0
  165. package/skill/references/classes/SYS_FileManager.md +1664 -1686
  166. package/skill/references/classes/SYS_FileSystem.md +1366 -1171
  167. package/skill/references/classes/SYS_FontManager.md +224 -224
  168. package/skill/references/classes/SYS_FormatConversion.md +349 -349
  169. package/skill/references/classes/SYS_HeaderMenu.md +480 -479
  170. package/skill/references/classes/SYS_Help.md +141 -0
  171. package/skill/references/classes/SYS_I18n.md +861 -861
  172. package/skill/references/classes/SYS_IFrame.md +541 -535
  173. package/skill/references/classes/SYS_LoadingAndProgressBar.md +246 -246
  174. package/skill/references/classes/SYS_Log.md +422 -424
  175. package/skill/references/classes/SYS_Math.md +1565 -1565
  176. package/skill/references/classes/SYS_Message.md +363 -363
  177. package/skill/references/classes/SYS_MessageBox.md +285 -285
  178. package/skill/references/classes/SYS_MessageBus.md +1618 -1618
  179. package/skill/references/classes/SYS_PanelControl.md +696 -696
  180. package/skill/references/classes/SYS_RightClickMenu.md +175 -175
  181. package/skill/references/classes/SYS_Setting.md +134 -85
  182. package/skill/references/classes/SYS_ShortcutKey.md +623 -623
  183. package/skill/references/classes/SYS_Storage.md +484 -484
  184. package/skill/references/classes/SYS_Timer.md +447 -447
  185. package/skill/references/classes/SYS_ToastMessage.md +194 -194
  186. package/skill/references/classes/SYS_Tool.md +317 -241
  187. package/skill/references/classes/SYS_Unit.md +594 -594
  188. package/skill/references/classes/SYS_WebSocket.md +401 -401
  189. package/skill/references/classes/SYS_Window.md +849 -850
  190. package/skill/references/enums/EDMT_EditorDocumentType.md +324 -278
  191. package/skill/references/enums/EDMT_EditorSplitScreenDirection.md +51 -47
  192. package/skill/references/enums/EDMT_EditorTabEventType.md +68 -62
  193. package/skill/references/enums/EDMT_IndicatorMarkerType.md +90 -80
  194. package/skill/references/enums/EDMT_ItemType.md +181 -157
  195. package/skill/references/enums/EDMT_ProjectCollaborationMode.md +51 -47
  196. package/skill/references/enums/EDMT_ProjectFileFormat.md +60 -0
  197. package/skill/references/enums/EDMT_ProjectReadyState.md +82 -0
  198. package/skill/references/enums/ELIB_DeviceJlcLibraryCategory.md +51 -47
  199. package/skill/references/enums/ELIB_LibraryType.md +129 -113
  200. package/skill/references/enums/ELIB_PreviewType.md +77 -69
  201. package/skill/references/enums/ELIB_SimulationModelType.md +51 -47
  202. package/skill/references/enums/ELIB_SymbolType.md +142 -124
  203. package/skill/references/enums/EPCB_AutoRoutingCornerStyle.md +51 -47
  204. package/skill/references/enums/EPCB_AutoRoutingExistingPrimitiveMode.md +51 -47
  205. package/skill/references/enums/EPCB_AutoRoutingOptimization.md +51 -47
  206. package/skill/references/enums/EPCB_DocumentCanvasUpdateCalculationActiveStatus.md +51 -47
  207. package/skill/references/enums/EPCB_DocumentRatlineCalculatingActiveStatus.md +55 -51
  208. package/skill/references/enums/EPCB_InactiveLayerDisplayMode.md +64 -58
  209. package/skill/references/enums/EPCB_LayerColorConfiguration.md +90 -80
  210. package/skill/references/enums/EPCB_LayerId.md +1169 -881
  211. package/skill/references/enums/EPCB_LayerStatus.md +64 -58
  212. package/skill/references/enums/EPCB_LayerType.md +129 -113
  213. package/skill/references/enums/EPCB_MouseEventType.md +64 -58
  214. package/skill/references/enums/EPCB_NetEventType.md +64 -58
  215. package/skill/references/enums/EPCB_PcbPlateType.md +51 -47
  216. package/skill/references/enums/EPCB_PdfOutputMethod.md +64 -58
  217. package/skill/references/enums/EPCB_PrimitiveArcInteractiveMode.md +51 -47
  218. package/skill/references/enums/EPCB_PrimitiveDimensionType.md +64 -58
  219. package/skill/references/enums/EPCB_PrimitiveEventType.md +64 -58
  220. package/skill/references/enums/EPCB_PrimitiveFillMode.md +68 -62
  221. package/skill/references/enums/EPCB_PrimitivePadHeatWeldingConnectionMethod.md +64 -58
  222. package/skill/references/enums/EPCB_PrimitivePadHoleType.md +64 -58
  223. package/skill/references/enums/EPCB_PrimitivePadShapeType.md +90 -80
  224. package/skill/references/enums/EPCB_PrimitivePadType.md +64 -58
  225. package/skill/references/enums/EPCB_PrimitivePourFillMethod.md +64 -58
  226. package/skill/references/enums/EPCB_PrimitiveRegionRuleType.md +107 -95
  227. package/skill/references/enums/EPCB_PrimitiveStringAlignMode.md +142 -124
  228. package/skill/references/enums/EPCB_PrimitiveType.md +233 -201
  229. package/skill/references/enums/EPCB_PrimitiveViaType.md +64 -58
  230. package/skill/references/enums/ESCH_DynamicSimulationEnginePullEventType.md +116 -102
  231. package/skill/references/enums/ESCH_DynamicSimulationEnginePushEventType.md +90 -80
  232. package/skill/references/enums/ESCH_ExportDocumentFileType.md +64 -58
  233. package/skill/references/enums/ESCH_MouseEventType.md +51 -47
  234. package/skill/references/enums/ESCH_PrimitiveComponentType.md +142 -124
  235. package/skill/references/enums/ESCH_PrimitiveEventType.md +77 -69
  236. package/skill/references/enums/ESCH_PrimitiveFillStyle.md +129 -113
  237. package/skill/references/enums/ESCH_PrimitiveLineType.md +77 -69
  238. package/skill/references/enums/ESCH_PrimitivePinShape.md +77 -69
  239. package/skill/references/enums/ESCH_PrimitivePinType.md +168 -146
  240. package/skill/references/enums/ESCH_PrimitiveTextAlignMode.md +142 -124
  241. package/skill/references/enums/ESCH_PrimitiveType.md +207 -179
  242. package/skill/references/enums/ESCH_SimulationNetlistType.md +38 -36
  243. package/skill/references/enums/ESCH_SpiceSimulationEnginePullEventType.md +51 -47
  244. package/skill/references/enums/ESCH_SpiceSimulationEnginePushEventType.md +77 -69
  245. package/skill/references/enums/ESYS_BottomPanelTab.md +94 -80
  246. package/skill/references/enums/ESYS_HeaderMenuEnvironment.md +181 -157
  247. package/skill/references/enums/ESYS_ImportProjectBoardOutlineSource.md +55 -51
  248. package/skill/references/enums/ESYS_ImportProjectImportOption.md +64 -58
  249. package/skill/references/enums/ESYS_ImportProjectSchematicObjectStyle.md +51 -47
  250. package/skill/references/enums/ESYS_ImportProjectViaSolderMaskExpansion.md +55 -51
  251. package/skill/references/enums/ESYS_JobState.md +95 -0
  252. package/skill/references/enums/ESYS_LeftPanelTab.md +94 -80
  253. package/skill/references/enums/ESYS_LogType.md +77 -102
  254. package/skill/references/enums/ESYS_NetlistType.md +129 -113
  255. package/skill/references/enums/ESYS_PanelPosition.md +69 -0
  256. package/skill/references/enums/ESYS_PanelTab.md +368 -0
  257. package/skill/references/enums/ESYS_RightPanelTab.md +237 -201
  258. package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorRange.md +220 -190
  259. package/skill/references/enums/ESYS_ShortcutKeyEffectiveEditorScene.md +103 -91
  260. package/skill/references/enums/ESYS_StartPageQuickStartItem.md +237 -205
  261. package/skill/references/enums/ESYS_Theme.md +51 -47
  262. package/skill/references/enums/ESYS_ToastMessageType.md +90 -80
  263. package/skill/references/enums/ESYS_Unit.md +116 -102
  264. package/skill/references/enums/ESYS_WindowEventType.md +64 -47
  265. package/skill/references/enums/ESYS_WindowOpenTarget.md +51 -47
  266. package/skill/references/enums/NetportDeviceName.md +146 -146
  267. package/skill/references/enums/SchToolBarDeviceName.md +278 -278
  268. package/skill/references/interfaces/BoardProps.md +169 -169
  269. package/skill/references/interfaces/BorderConfig.md +109 -0
  270. package/skill/references/interfaces/ButtonProps.md +196 -169
  271. package/skill/references/interfaces/CellClickInfo.md +142 -0
  272. package/skill/references/interfaces/CellCoord.md +88 -0
  273. package/skill/references/interfaces/CheckBoxProps.md +223 -196
  274. package/skill/references/interfaces/CheckChangeDetail.md +88 -0
  275. package/skill/references/interfaces/CheckboxEditConfig.md +159 -0
  276. package/skill/references/interfaces/ClipboardCellData.md +142 -0
  277. package/skill/references/interfaces/ClipboardConfig.md +115 -0
  278. package/skill/references/interfaces/ColorPickerProps.md +169 -0
  279. package/skill/references/interfaces/ColumnDef.md +605 -0
  280. package/skill/references/interfaces/ColumnEditTrigger.md +57 -0
  281. package/skill/references/interfaces/ColumnGroupDef.md +192 -0
  282. package/skill/references/interfaces/ColumnResizeConfig.md +142 -0
  283. package/skill/references/interfaces/ComponentPropsMap.md +517 -448
  284. package/skill/references/interfaces/CustomHeaderConfig.md +169 -0
  285. package/skill/references/interfaces/DialogProps.md +385 -385
  286. package/skill/references/interfaces/DragSortConfig.md +115 -0
  287. package/skill/references/interfaces/EditingConfig.md +196 -0
  288. package/skill/references/interfaces/FilteringConfig.md +250 -0
  289. package/skill/references/interfaces/FixedColumnConfig.md +88 -0
  290. package/skill/references/interfaces/FlexItemProps.md +116 -116
  291. package/skill/references/interfaces/FlexProps.md +224 -224
  292. package/skill/references/interfaces/GridItemProps.md +143 -143
  293. package/skill/references/interfaces/GridProps.md +143 -143
  294. package/skill/references/interfaces/IDMT_BoardItem.md +171 -171
  295. package/skill/references/interfaces/IDMT_BriefProjectItem.md +171 -171
  296. package/skill/references/interfaces/IDMT_EditorDocumentItem.md +169 -169
  297. package/skill/references/interfaces/IDMT_EditorSplitScreenItem.md +173 -173
  298. package/skill/references/interfaces/IDMT_EditorTabItem.md +169 -169
  299. package/skill/references/interfaces/IDMT_FolderItem.md +225 -225
  300. package/skill/references/interfaces/IDMT_IndicatorMarkerShape.md +393 -393
  301. package/skill/references/interfaces/IDMT_PanelItem.md +144 -144
  302. package/skill/references/interfaces/IDMT_PcbItem.md +171 -171
  303. package/skill/references/interfaces/IDMT_ProjectItem.md +143 -143
  304. package/skill/references/interfaces/IDMT_SchematicItem.md +225 -225
  305. package/skill/references/interfaces/IDMT_SchematicPageItem.md +198 -198
  306. package/skill/references/interfaces/IDMT_TeamItem.md +144 -144
  307. package/skill/references/interfaces/IDMT_WorkspaceItem.md +117 -117
  308. package/skill/references/interfaces/IDesignPortal.md +103 -103
  309. package/skill/references/interfaces/ILIB_3DModelItem.md +198 -198
  310. package/skill/references/interfaces/ILIB_3DModelSearchItem.md +277 -277
  311. package/skill/references/interfaces/ILIB_CbbItem.md +225 -225
  312. package/skill/references/interfaces/ILIB_CbbSearchItem.md +277 -277
  313. package/skill/references/interfaces/ILIB_ClassificationIndex.md +150 -150
  314. package/skill/references/interfaces/ILIB_ClassificationNode.md +98 -0
  315. package/skill/references/interfaces/ILIB_DeviceAssociationItem.md +210 -210
  316. package/skill/references/interfaces/ILIB_DeviceExtendPropertyItem.md +304 -304
  317. package/skill/references/interfaces/ILIB_DeviceItem.md +279 -279
  318. package/skill/references/interfaces/ILIB_DevicePropertiesForSearch.md +250 -250
  319. package/skill/references/interfaces/ILIB_DeviceSearchItem.md +521 -521
  320. package/skill/references/interfaces/ILIB_ExtendLibrary3DModelFunctions.md +64 -64
  321. package/skill/references/interfaces/ILIB_ExtendLibraryCbbFunctions.md +93 -99
  322. package/skill/references/interfaces/ILIB_ExtendLibraryClassificationIndex.md +150 -150
  323. package/skill/references/interfaces/ILIB_ExtendLibraryDeviceFunctions.md +143 -157
  324. package/skill/references/interfaces/ILIB_ExtendLibraryFootprintFunctions.md +63 -63
  325. package/skill/references/interfaces/ILIB_ExtendLibraryFunctions.md +123 -123
  326. package/skill/references/interfaces/ILIB_ExtendLibraryItem.md +97 -97
  327. package/skill/references/interfaces/ILIB_ExtendLibraryItemIndex.md +98 -98
  328. package/skill/references/interfaces/ILIB_ExtendLibrarySearchProperty.md +115 -115
  329. package/skill/references/interfaces/ILIB_ExtendLibrarySearchResult.md +169 -169
  330. package/skill/references/interfaces/ILIB_ExtendLibrarySearchResultDataLine.md +234 -234
  331. package/skill/references/interfaces/ILIB_ExtendLibrarySymbolFunctions.md +91 -105
  332. package/skill/references/interfaces/ILIB_ExtendLibraryUserIndex.md +96 -96
  333. package/skill/references/interfaces/ILIB_FootprintItem.md +256 -198
  334. package/skill/references/interfaces/ILIB_FootprintPropertiesForSearch.md +61 -61
  335. package/skill/references/interfaces/ILIB_FootprintSearchItem.md +277 -277
  336. package/skill/references/interfaces/ILIB_LibraryInfo.md +92 -92
  337. package/skill/references/interfaces/ILIB_LibraryItem.md +115 -115
  338. package/skill/references/interfaces/ILIB_PanelLibraryItem.md +198 -198
  339. package/skill/references/interfaces/ILIB_PanelLibrarySearchItem.md +277 -277
  340. package/skill/references/interfaces/ILIB_RegisterExtendLibraryProps.md +71 -0
  341. package/skill/references/interfaces/ILIB_SimulationModelItem.md +306 -306
  342. package/skill/references/interfaces/ILIB_SimulationModelSearchItem.md +304 -304
  343. package/skill/references/interfaces/ILIB_SymbolItem.md +306 -279
  344. package/skill/references/interfaces/ILIB_SymbolPropertiesForSearch.md +61 -61
  345. package/skill/references/interfaces/ILIB_SymbolSearchItem.md +304 -304
  346. package/skill/references/interfaces/IPCB_AutoLayoutResult.md +169 -169
  347. package/skill/references/interfaces/IPCB_AutoRoutingProps.md +220 -220
  348. package/skill/references/interfaces/IPCB_AutoRoutingResult.md +169 -169
  349. package/skill/references/interfaces/IPCB_BomPropertiesTableColumns.md +169 -169
  350. package/skill/references/interfaces/IPCB_DifferentialPairItem.md +115 -115
  351. package/skill/references/interfaces/IPCB_DiscretizeOptions.md +65 -65
  352. package/skill/references/interfaces/IPCB_DiscretizedPoint.md +88 -88
  353. package/skill/references/interfaces/IPCB_EqualLengthNetGroupItem.md +115 -115
  354. package/skill/references/interfaces/IPCB_LayerItem.md +277 -277
  355. package/skill/references/interfaces/IPCB_NetClassItem.md +115 -115
  356. package/skill/references/interfaces/IPCB_NetInfo.md +115 -115
  357. package/skill/references/interfaces/IPCB_PadPairGroupItem.md +88 -88
  358. package/skill/references/interfaces/IPCB_PadPairMinWireLengthItem.md +88 -88
  359. package/skill/references/interfaces/IPCB_PhysicalStackingConfiguration.md +115 -115
  360. package/skill/references/interfaces/IPCB_Primitive.md +218 -218
  361. package/skill/references/interfaces/IPCB_PrimitiveAPI.md +174 -175
  362. package/skill/references/interfaces/IPCB_PrimitivePadHeatWelding.md +151 -151
  363. package/skill/references/interfaces/IPCB_PrimitivePouredPourFill.md +142 -142
  364. package/skill/references/interfaces/IPCB_PrimitiveSolderMaskAndPasteMaskExpansion.md +154 -154
  365. package/skill/references/interfaces/IPCB_RayTracerBackgroundConfig.md +223 -0
  366. package/skill/references/interfaces/IPCB_RayTracerLightConfig.md +412 -0
  367. package/skill/references/interfaces/IPCB_RayTracerMaterialConfig.md +547 -0
  368. package/skill/references/interfaces/IPCB_RayTracerPcbMaterialConfig.md +196 -0
  369. package/skill/references/interfaces/IPCB_RayTracerRenderConfigurations.md +200 -0
  370. package/skill/references/interfaces/IPCB_RayTracerRendererConfig.md +196 -0
  371. package/skill/references/interfaces/IPCB_RayTracerSceneElement.md +115 -0
  372. package/skill/references/interfaces/IPCB_RayTracerSceneElementTransform.md +123 -0
  373. package/skill/references/interfaces/IPCB_RayTracerTexture.md +88 -0
  374. package/skill/references/interfaces/IPCB_SubstratePhysicalProperties.md +88 -88
  375. package/skill/references/interfaces/IRawNet.md +103 -103
  376. package/skill/references/interfaces/IRawPureSchematic.md +80 -80
  377. package/skill/references/interfaces/IRawSchematic.md +103 -103
  378. package/skill/references/interfaces/IRawWire.md +149 -149
  379. package/skill/references/interfaces/ISCH_DrcError.md +142 -142
  380. package/skill/references/interfaces/ISCH_DrcErrorPrimitive.md +142 -142
  381. package/skill/references/interfaces/ISCH_ExportPngResolution.md +94 -94
  382. package/skill/references/interfaces/ISCH_NetInfo.md +88 -88
  383. package/skill/references/interfaces/ISCH_Primitive.md +218 -219
  384. package/skill/references/interfaces/ISCH_PrimitiveAPI.md +174 -175
  385. package/skill/references/interfaces/ISCH_ProjectNetInfo.md +142 -142
  386. package/skill/references/interfaces/ISCH_WireInfo.md +169 -169
  387. package/skill/references/interfaces/ISYS_ComparisonResponse.md +115 -0
  388. package/skill/references/interfaces/ISYS_ExtensionExternalApiIndex.md +13 -0
  389. package/skill/references/interfaces/ISYS_ExtensionRegisteredExternalApis.md +13 -0
  390. package/skill/references/interfaces/ISYS_ExternalApiHelp.md +173 -0
  391. package/skill/references/interfaces/ISYS_ExternalApiRegistration.md +146 -0
  392. package/skill/references/interfaces/ISYS_FileSystemFileList.md +169 -169
  393. package/skill/references/interfaces/ISYS_HeaderMenuSub1MenuItem.md +205 -174
  394. package/skill/references/interfaces/ISYS_HeaderMenuSub2MenuItem.md +178 -147
  395. package/skill/references/interfaces/ISYS_HeaderMenuTopMenuItem.md +115 -115
  396. package/skill/references/interfaces/ISYS_HeaderMenus.md +408 -408
  397. package/skill/references/interfaces/ISYS_HelpAudienceEntry.md +92 -0
  398. package/skill/references/interfaces/ISYS_HelpClassSummary.md +205 -0
  399. package/skill/references/interfaces/ISYS_HelpData.md +92 -0
  400. package/skill/references/interfaces/ISYS_HelpMethodDetail.md +310 -0
  401. package/skill/references/interfaces/ISYS_JobHandle.md +65 -0
  402. package/skill/references/interfaces/ISYS_JobLogEntry.md +142 -0
  403. package/skill/references/interfaces/ISYS_JobStatus.md +176 -0
  404. package/skill/references/interfaces/ISYS_LogLine.md +115 -115
  405. package/skill/references/interfaces/ISYS_MathBBox.md +142 -142
  406. package/skill/references/interfaces/ISYS_MathPoint.md +88 -88
  407. package/skill/references/interfaces/ISYS_MathPolygonWithHoles.md +92 -92
  408. package/skill/references/interfaces/ISYS_MessageBusTask.md +115 -115
  409. package/skill/references/interfaces/ISYS_MultilingualLanguagesData.md +12 -12
  410. package/skill/references/interfaces/ISYS_RightClickMenuItem.md +174 -174
  411. package/skill/references/interfaces/ISYS_ShortcutKeyData.md +169 -169
  412. package/skill/references/interfaces/ISYS_ShortcutKeyDataWithCallFn.md +62 -62
  413. package/skill/references/interfaces/ISYS_ShortcutKeyDataWithUserDefinedShortcutKey.md +62 -62
  414. package/skill/references/interfaces/ISYS_WindowEventListenerRemovableObject.md +109 -109
  415. package/skill/references/interfaces/IconProps.md +88 -88
  416. package/skill/references/interfaces/ImageProps.md +115 -115
  417. package/skill/references/interfaces/InputEditConfig.md +182 -0
  418. package/skill/references/interfaces/InputProps.md +547 -520
  419. package/skill/references/interfaces/KeyboardConfig.md +61 -0
  420. package/skill/references/interfaces/ListChildren.md +223 -223
  421. package/skill/references/interfaces/ListProps.md +250 -223
  422. package/skill/references/interfaces/ModalProps.md +358 -358
  423. package/skill/references/interfaces/NumberEditConfig.md +234 -0
  424. package/skill/references/interfaces/RadioGroupProps.md +196 -196
  425. package/skill/references/interfaces/RadioItem.md +115 -115
  426. package/skill/references/interfaces/RichTableProps.md +1357 -0
  427. package/skill/references/interfaces/RowMetaConfig.md +142 -0
  428. package/skill/references/interfaces/ScrollerProps.md +169 -169
  429. package/skill/references/interfaces/SelectEditConfig.md +211 -0
  430. package/skill/references/interfaces/SelectListItem.md +142 -142
  431. package/skill/references/interfaces/SelectOption.md +142 -0
  432. package/skill/references/interfaces/SelectProps.md +169 -169
  433. package/skill/references/interfaces/SelectionConfig.md +358 -0
  434. package/skill/references/interfaces/SliderProps.md +142 -0
  435. package/skill/references/interfaces/SlotProps.md +88 -88
  436. package/skill/references/interfaces/SortState.md +88 -0
  437. package/skill/references/interfaces/SortingConfig.md +169 -0
  438. package/skill/references/interfaces/StyleProps.md +439 -385
  439. package/skill/references/interfaces/TextAreaProps.md +196 -196
  440. package/skill/references/interfaces/TextProps.md +169 -169
  441. package/skill/references/interfaces/TextareaEditConfig.md +182 -0
  442. package/skill/references/interfaces/ValidationRule.md +223 -0
  443. package/skill/references/interfaces/VirtualScrollConfig.md +115 -0
  444. package/skill/references/types/Align.md +9 -0
  445. package/skill/references/types/CellContentType.md +9 -0
  446. package/skill/references/types/ColumnDefOrGroup.md +12 -0
  447. package/skill/references/types/ColumnEditConfig.md +13 -0
  448. package/skill/references/types/ColumnType.md +9 -0
  449. package/skill/references/types/DataChangeType.md +9 -0
  450. package/skill/references/types/FilterMatchMode.md +9 -0
  451. package/skill/references/types/RichTableRow.md +12 -0
  452. package/skill/references/types/Serializable.md +10 -0
  453. package/skill/references/types/SerializablePrimitive.md +9 -0
  454. package/skill/references/types/SortOrder.md +9 -0
  455. package/skill/references/types/TPCB_LayerTypesOfInnerLayer.md +11 -11
  456. package/skill/references/types/TPCB_LayersInTheSelectable.md +42 -42
  457. package/skill/references/types/TPCB_LayersOfComponent.md +11 -11
  458. package/skill/references/types/TPCB_LayersOfCopper.md +15 -15
  459. package/skill/references/types/TPCB_LayersOfCustom.md +41 -41
  460. package/skill/references/types/TPCB_LayersOfDimension.md +16 -16
  461. package/skill/references/types/TPCB_LayersOfFill.md +28 -28
  462. package/skill/references/types/TPCB_LayersOfImage.md +22 -22
  463. package/skill/references/types/TPCB_LayersOfInner.md +41 -41
  464. package/skill/references/types/TPCB_LayersOfLine.md +25 -25
  465. package/skill/references/types/TPCB_LayersOfObject.md +12 -12
  466. package/skill/references/types/TPCB_LayersOfPad.md +11 -11
  467. package/skill/references/types/TPCB_LayersOfRegion.md +11 -11
  468. package/skill/references/types/TPCB_NumberOfCopperLayers.md +9 -9
  469. package/skill/references/types/TPCB_PolygonSourceArray.md +85 -83
  470. package/skill/references/types/TPCB_PrimitiveDimensionCoordinateSet.md +66 -66
  471. package/skill/references/types/TPCB_PrimitivePadHole.md +30 -30
  472. package/skill/references/types/TPCB_PrimitivePadShape.md +61 -61
  473. package/skill/references/types/TPCB_PrimitiveSpecialPadShape.md +19 -19
  474. package/skill/references/types/TSYS_ComparisonErrorCode.md +15 -0
  475. package/skill/references/types/TSYS_LanguageKeyValuePairs.md +13 -0
  476. package/skill/references/types/TSYS_MathPolygonGroup.md +15 -15
  477. package/skill/references/types/TSYS_MathPolygonInput.md +20 -20
  478. package/skill/references/types/TSYS_ShortcutKeys.md +96 -96
  479. package/skill/user-guide/using-extension.md +47 -47
  480. package/src/json-gen.test.js +430 -0
  481. package/skill/guide/ancillary-projects/pro-api-sdk.md +0 -1
  482. package/skill/references/interfaces/ISYS_PcbComparisonResponse.md +0 -115
  483. package/skill/references/types/ISYS_LanguageKeyValuePairs.md +0 -13
  484. package/skill/references/types/TSYS_PcbComparisonErrorCode.md +0 -10
@@ -1,1618 +1,1618 @@
1
- # SYS\_MessageBus class
2
-
3
- System / message bus class
4
-
5
- ## Signature
6
-
7
- ```typescript
8
- class SYS_MessageBus
9
- ```
10
-
11
- ## Remarks
12
-
13
- ## Methods
14
-
15
- <table><thead><tr><th>
16
-
17
- Method
18
-
19
- </th><th>
20
-
21
- Modifiers
22
-
23
- </th><th>
24
-
25
- Description
26
-
27
- </th></tr></thead>
28
- <tbody><tr><td>
29
-
30
- [createPrivateMessageBus()](./SYS_MessageBus.md)
31
-
32
- </td><td>
33
-
34
- </td><td>
35
-
36
- Create Private message bus
37
-
38
- </td></tr>
39
- <tr><td>
40
-
41
- [publish(topic, message)](./SYS_MessageBus.md)
42
-
43
- </td><td>
44
-
45
- </td><td>
46
-
47
- Private message bus: publish a message
48
-
49
- </td></tr>
50
- <tr><td>
51
-
52
- [publishPublic(topic, message)](./SYS_MessageBus.md)
53
-
54
- </td><td>
55
-
56
- </td><td>
57
-
58
- Public message bus: publish a message
59
-
60
- </td></tr>
61
- <tr><td>
62
-
63
- [pull(topic, callbackFn)](./SYS_MessageBus.md)
64
-
65
- </td><td>
66
-
67
- </td><td>
68
-
69
- Private message bus: pull a message
70
-
71
- </td></tr>
72
- <tr><td>
73
-
74
- [pullAsync(topic)](./SYS_MessageBus.md)
75
-
76
- </td><td>
77
-
78
- </td><td>
79
-
80
- Private message bus: pull a message (Promise version)
81
-
82
- </td></tr>
83
- <tr><td>
84
-
85
- [pullAsyncPublic(topic)](./SYS_MessageBus.md)
86
-
87
- </td><td>
88
-
89
- </td><td>
90
-
91
- Public message bus: pull a message (Promise version)
92
-
93
- </td></tr>
94
- <tr><td>
95
-
96
- [pullPublic(topic, callbackFn)](./SYS_MessageBus.md)
97
-
98
- </td><td>
99
-
100
- </td><td>
101
-
102
- Public message bus: pull a message
103
-
104
- </td></tr>
105
- <tr><td>
106
-
107
- [push(topic, message)](./SYS_MessageBus.md)
108
-
109
- </td><td>
110
-
111
- </td><td>
112
-
113
- Private message bus: push a message
114
-
115
- </td></tr>
116
- <tr><td>
117
-
118
- [pushPublic(topic, message)](./SYS_MessageBus.md)
119
-
120
- </td><td>
121
-
122
- </td><td>
123
-
124
- Public message bus: push a message
125
-
126
- </td></tr>
127
- <tr><td>
128
-
129
- [removePrivateMessageBus()](./SYS_MessageBus.md)
130
-
131
- </td><td>
132
-
133
- </td><td>
134
-
135
- Remove Private message bus
136
-
137
- </td></tr>
138
- <tr><td>
139
-
140
- [rpcCall(topic, message, timeout)](./SYS_MessageBus.md)
141
-
142
- </td><td>
143
-
144
- </td><td>
145
-
146
- Private message bus: call RPC service
147
-
148
- </td></tr>
149
- <tr><td>
150
-
151
- [rpcCallPublic(topic, message, timeout)](./SYS_MessageBus.md)
152
-
153
- </td><td>
154
-
155
- </td><td>
156
-
157
- Public message bus: call RPC service
158
-
159
- </td></tr>
160
- <tr><td>
161
-
162
- [rpcService(topic, callbackFn)](./SYS_MessageBus.md)
163
-
164
- </td><td>
165
-
166
- </td><td>
167
-
168
- Private message bus: register RPC service
169
-
170
- </td></tr>
171
- <tr><td>
172
-
173
- [rpcServicePublic(topic, callbackFn)](./SYS_MessageBus.md)
174
-
175
- </td><td>
176
-
177
- </td><td>
178
-
179
- Public message bus: register RPC service
180
-
181
- </td></tr>
182
- <tr><td>
183
-
184
- [subscribe(topic, callbackFn)](./SYS_MessageBus.md)
185
-
186
- </td><td>
187
-
188
- </td><td>
189
-
190
- Private message bus: subscribe to a message
191
-
192
- </td></tr>
193
- <tr><td>
194
-
195
- [subscribeOnce(topic, callbackFn)](./SYS_MessageBus.md)
196
-
197
- </td><td>
198
-
199
- </td><td>
200
-
201
- Private message bus: subscribe to a message once
202
-
203
- </td></tr>
204
- <tr><td>
205
-
206
- [subscribeOncePublic(topic, callbackFn)](./SYS_MessageBus.md)
207
-
208
- </td><td>
209
-
210
- </td><td>
211
-
212
- Public message bus: subscribe to a message once
213
-
214
- </td></tr>
215
- <tr><td>
216
-
217
- [subscribePublic(topic, callbackFn)](./SYS_MessageBus.md)
218
-
219
- </td><td>
220
-
221
- </td><td>
222
-
223
- Public message bus: subscribe to a message
224
-
225
- </td></tr>
226
- </tbody></table>
227
-
228
- ---
229
-
230
- ## 方法详情
231
-
232
- ### createprivatemessagebus
233
-
234
- # SYS\_MessageBus.createPrivateMessageBus() method
235
-
236
- Create Private message bus
237
-
238
- ## Signature
239
-
240
- ```typescript
241
- function createPrivateMessageBus(): void;
242
- ```
243
-
244
- ## Returns
245
-
246
- void
247
-
248
- ## Remarks
249
-
250
- Generally, there is no need to call this method. The private message bus is automatically created when listening or sending messages
251
-
252
- ## Example
253
-
254
- ```javascript
255
- // 1. 手动创建私有消息总线(重复调用无副作用)
256
- eda.sys_MessageBus.createPrivateMessageBus();
257
-
258
- // 2. 订阅一个主题,验证总线已就绪
259
- const task = eda.sys_MessageBus.subscribe('嘉立创示例_创建总线', (message) => {
260
- console.log('订阅者收到:', message);
261
- });
262
-
263
- // 3. 发布消息,回调立即触发
264
- eda.sys_MessageBus.publish('嘉立创示例_创建总线', '总线已创建并可用');
265
-
266
- // 4. 取消订阅,恢复原状
267
- task.cancel();
268
- console.log('已取消订阅');
269
- ```
270
-
271
- ### publish
272
-
273
- # SYS\_MessageBus.publish() method
274
-
275
- Private message bus: publish a message
276
-
277
- ## Signature
278
-
279
- ```typescript
280
- function publish(topic: string, message: any): void;
281
- ```
282
-
283
- ## Parameters
284
-
285
- <table><thead><tr><th>
286
-
287
- Parameter
288
-
289
- </th><th>
290
-
291
- Type
292
-
293
- </th><th>
294
-
295
- Description
296
-
297
- </th></tr></thead>
298
- <tbody><tr><td>
299
-
300
- topic
301
-
302
- </td><td>
303
-
304
- string
305
-
306
- </td><td>
307
-
308
- Theme
309
-
310
- </td></tr>
311
- <tr><td>
312
-
313
- message
314
-
315
- </td><td>
316
-
317
- any
318
-
319
- </td><td>
320
-
321
- Message
322
-
323
- </td></tr>
324
- </tbody></table>
325
-
326
- ## Returns
327
-
328
- void
329
-
330
- ## Remarks
331
-
332
- Broadcast the message to every Subscriber
333
-
334
- ## Example
335
-
336
- ```javascript
337
- // 1. 两个不同模块订阅同一主题
338
- const panelTask = eda.sys_MessageBus.subscribe('嘉立创示例_发布', (message) => {
339
- console.log('面板模块收到:', message);
340
- });
341
- const cacheTask = eda.sys_MessageBus.subscribe('嘉立创示例_发布', (message) => {
342
- console.log('缓存模块收到:', message);
343
- });
344
-
345
- // 2. 发布一条广播消息,两个订阅者都会收到
346
- eda.sys_MessageBus.publish('嘉立创示例_发布', { source: '工程检查', result: '通过' });
347
-
348
- // 3. 取消订阅,恢复原状
349
- panelTask.cancel();
350
- cacheTask.cancel();
351
- console.log('已取消全部订阅');
352
- ```
353
-
354
- ### publishpublic
355
-
356
- # SYS\_MessageBus.publishPublic() method
357
-
358
- Public message bus: publish a message
359
-
360
- ## Signature
361
-
362
- ```typescript
363
- function publishPublic(topic: string, message: any): void;
364
- ```
365
-
366
- ## Parameters
367
-
368
- <table><thead><tr><th>
369
-
370
- Parameter
371
-
372
- </th><th>
373
-
374
- Type
375
-
376
- </th><th>
377
-
378
- Description
379
-
380
- </th></tr></thead>
381
- <tbody><tr><td>
382
-
383
- topic
384
-
385
- </td><td>
386
-
387
- string
388
-
389
- </td><td>
390
-
391
- Theme
392
-
393
- </td></tr>
394
- <tr><td>
395
-
396
- message
397
-
398
- </td><td>
399
-
400
- any
401
-
402
- </td><td>
403
-
404
- Message
405
-
406
- </td></tr>
407
- </tbody></table>
408
-
409
- ## Returns
410
-
411
- void
412
-
413
- ## Remarks
414
-
415
- Broadcast the message to every Subscriber
416
-
417
- ## Example
418
-
419
- ```javascript
420
- // 1. 两个公共订阅者 + 一个私有订阅者(用于对照隔离性)
421
- const publicTaskA = eda.sys_MessageBus.subscribePublic('嘉立创示例_公共发布', (message) => {
422
- console.log('公共订阅者 A 收到:', message);
423
- });
424
- const publicTaskB = eda.sys_MessageBus.subscribePublic('嘉立创示例_公共发布', (message) => {
425
- console.log('公共订阅者 B 收到:', message);
426
- });
427
- const privateTask = eda.sys_MessageBus.subscribe('嘉立创示例_公共发布', (message) => {
428
- console.log('私有订阅者收到:', message);
429
- });
430
-
431
- // 2. 在公共总线发布广播,只有公共订阅者会收到
432
- eda.sys_MessageBus.publishPublic('嘉立创示例_公共发布', '工程已保存');
433
-
434
- // 3. 取消订阅,恢复原状
435
- publicTaskA.cancel();
436
- publicTaskB.cancel();
437
- privateTask.cancel();
438
- console.log('已取消全部订阅');
439
- ```
440
-
441
- ### pull
442
-
443
- # SYS\_MessageBus.pull() method
444
-
445
- Private message bus: pull a message
446
-
447
- ## Signature
448
-
449
- ```typescript
450
- function pull(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
451
- ```
452
-
453
- ## Parameters
454
-
455
- <table><thead><tr><th>
456
-
457
- Parameter
458
-
459
- </th><th>
460
-
461
- Type
462
-
463
- </th><th>
464
-
465
- Description
466
-
467
- </th></tr></thead>
468
- <tbody><tr><td>
469
-
470
- topic
471
-
472
- </td><td>
473
-
474
- string
475
-
476
- </td><td>
477
-
478
- Theme
479
-
480
- </td></tr>
481
- <tr><td>
482
-
483
- callbackFn
484
-
485
- </td><td>
486
-
487
- (message: any) =&gt; void
488
-
489
- </td><td>
490
-
491
- Callback after a message is pulled
492
-
493
- </td></tr>
494
- </tbody></table>
495
-
496
- ## Returns
497
-
498
- [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
499
-
500
- Message bus task
501
-
502
- ## Remarks
503
-
504
- Only one message can be pulled at a time
505
-
506
- ## Example
507
-
508
- ```javascript
509
- // 1. 注册拉取回调(每次只能拉一个消息)
510
- let count = 0;
511
- const task = eda.sys_MessageBus.pull('嘉立创示例_拉取', (message) => {
512
- count++;
513
- console.log('第', count, '次拉到:', message);
514
- });
515
-
516
- // 2. 推送两条消息:只有第一条会被这个 Puller 收到
517
- eda.sys_MessageBus.push('嘉立创示例_拉取', '任务甲');
518
- eda.sys_MessageBus.push('嘉立创示例_拉取', '任务乙');
519
-
520
- console.log('拉取次数:', count);
521
-
522
- // 3. 取消任务(未消费完的排队消息一并放弃)
523
- task.cancel();
524
- console.log('已取消拉取任务');
525
- ```
526
-
527
- ### pullasync
528
-
529
- # SYS\_MessageBus.pullAsync() method
530
-
531
- Private message bus: pull a message (Promise version)
532
-
533
- ## Signature
534
-
535
- ```typescript
536
- function pullAsync(topic: string): Promise<any>;
537
- ```
538
-
539
- ## Parameters
540
-
541
- <table><thead><tr><th>
542
-
543
- Parameter
544
-
545
- </th><th>
546
-
547
- Type
548
-
549
- </th><th>
550
-
551
- Description
552
-
553
- </th></tr></thead>
554
- <tbody><tr><td>
555
-
556
- topic
557
-
558
- </td><td>
559
-
560
- string
561
-
562
- </td><td>
563
-
564
- Theme
565
-
566
- </td></tr>
567
- </tbody></table>
568
-
569
- ## Returns
570
-
571
- Promise&lt;any&gt;
572
-
573
- The pulled message
574
-
575
- ## Remarks
576
-
577
- Only one message can be pulled at a time. You can use `await` to wait for the message to be pulled
578
-
579
- ## Example
580
-
581
- ```javascript
582
- // 1. 先发起拉取(Promise 挂起等待消息)
583
- const pending = eda.sys_MessageBus.pullAsync('嘉立创示例_异步拉取');
584
-
585
- // 2. 推送消息,挂起的 Promise 随即满足
586
- eda.sys_MessageBus.push('嘉立创示例_异步拉取', { task: '导出 BOM', done: true });
587
-
588
- // 3. await 直接拿到拉到的消息
589
- const message = await pending;
590
- console.log('拉到的消息:', message);
591
- ```
592
-
593
- ### pullasyncpublic
594
-
595
- # SYS\_MessageBus.pullAsyncPublic() method
596
-
597
- Public message bus: pull a message (Promise version)
598
-
599
- ## Signature
600
-
601
- ```typescript
602
- function pullAsyncPublic(topic: string): Promise<any>;
603
- ```
604
-
605
- ## Parameters
606
-
607
- <table><thead><tr><th>
608
-
609
- Parameter
610
-
611
- </th><th>
612
-
613
- Type
614
-
615
- </th><th>
616
-
617
- Description
618
-
619
- </th></tr></thead>
620
- <tbody><tr><td>
621
-
622
- topic
623
-
624
- </td><td>
625
-
626
- string
627
-
628
- </td><td>
629
-
630
- Theme
631
-
632
- </td></tr>
633
- </tbody></table>
634
-
635
- ## Returns
636
-
637
- Promise&lt;any&gt;
638
-
639
- The pulled message
640
-
641
- ## Remarks
642
-
643
- Only one message can be pulled at a time. You can use `await` to wait for the message to be pulled
644
-
645
- ## Example
646
-
647
- ```javascript
648
- // 1. 在公共总线发起拉取(Promise 挂起等待消息)
649
- const pending = eda.sys_MessageBus.pullAsyncPublic('嘉立创示例_公共异步拉取');
650
-
651
- // 2. 用 pushPublic 投递消息(私有总线的 push 到不了这里)
652
- eda.sys_MessageBus.pushPublic('嘉立创示例_公共异步拉取', '跨扩展结果已就绪');
653
-
654
- // 3. await 直接拿到拉到的消息
655
- const message = await pending;
656
- console.log('拉到的公共消息:', message);
657
- ```
658
-
659
- ### pullpublic
660
-
661
- # SYS\_MessageBus.pullPublic() method
662
-
663
- Public message bus: pull a message
664
-
665
- ## Signature
666
-
667
- ```typescript
668
- function pullPublic(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
669
- ```
670
-
671
- ## Parameters
672
-
673
- <table><thead><tr><th>
674
-
675
- Parameter
676
-
677
- </th><th>
678
-
679
- Type
680
-
681
- </th><th>
682
-
683
- Description
684
-
685
- </th></tr></thead>
686
- <tbody><tr><td>
687
-
688
- topic
689
-
690
- </td><td>
691
-
692
- string
693
-
694
- </td><td>
695
-
696
- Theme
697
-
698
- </td></tr>
699
- <tr><td>
700
-
701
- callbackFn
702
-
703
- </td><td>
704
-
705
- (message: any) =&gt; void
706
-
707
- </td><td>
708
-
709
- Callback after a message is pulled
710
-
711
- </td></tr>
712
- </tbody></table>
713
-
714
- ## Returns
715
-
716
- [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
717
-
718
- Message bus task
719
-
720
- ## Remarks
721
-
722
- Only one message can be pulled at a time
723
-
724
- ## Example
725
-
726
- ```javascript
727
- // 1. 在公共总线注册拉取回调(一次性)
728
- const task = eda.sys_MessageBus.pullPublic('嘉立创示例_公共拉取', (message) => {
729
- console.log('公共总线拉到:', message);
730
- });
731
-
732
- // 2. 用 pushPublic 投递消息,回调立即触发
733
- eda.sys_MessageBus.pushPublic('嘉立创示例_公共拉取', '公共任务甲');
734
-
735
- // 3. 取消任务,恢复原状
736
- task.cancel();
737
- console.log('已取消公共拉取任务');
738
- ```
739
-
740
- ### push
741
-
742
- # SYS\_MessageBus.push() method
743
-
744
- Private message bus: push a message
745
-
746
- ## Signature
747
-
748
- ```typescript
749
- function push(topic: string, message: any): void;
750
- ```
751
-
752
- ## Parameters
753
-
754
- <table><thead><tr><th>
755
-
756
- Parameter
757
-
758
- </th><th>
759
-
760
- Type
761
-
762
- </th><th>
763
-
764
- Description
765
-
766
- </th></tr></thead>
767
- <tbody><tr><td>
768
-
769
- topic
770
-
771
- </td><td>
772
-
773
- string
774
-
775
- </td><td>
776
-
777
- Theme
778
-
779
- </td></tr>
780
- <tr><td>
781
-
782
- message
783
-
784
- </td><td>
785
-
786
- any
787
-
788
- </td><td>
789
-
790
- Message
791
-
792
- </td></tr>
793
- </tbody></table>
794
-
795
- ## Returns
796
-
797
- void
798
-
799
- ## Remarks
800
-
801
- Each message can only be received by one Puller
802
-
803
- ## Example
804
-
805
- ```javascript
806
- // 1. 先推送消息(此时还没有 Puller,消息排队保留)
807
- eda.sys_MessageBus.push('嘉立创示例_推送', '先推后拉的消息');
808
-
809
- // 2. 再注册拉取回调,排队的消息立即交付
810
- const task = eda.sys_MessageBus.pull('嘉立创示例_推送', (message) => {
811
- console.log('拉到排队消息:', message);
812
- });
813
-
814
- // 3. 常规顺序演示:先注册再推送
815
- const task2 = eda.sys_MessageBus.pull('嘉立创示例_推送', (message) => {
816
- console.log('拉到实时消息:', message);
817
- });
818
- eda.sys_MessageBus.push('嘉立创示例_推送', '先拉后推的消息');
819
-
820
- // 4. 取消任务,恢复原状
821
- task.cancel();
822
- task2.cancel();
823
- console.log('已取消拉取任务');
824
- ```
825
-
826
- ### pushpublic
827
-
828
- # SYS\_MessageBus.pushPublic() method
829
-
830
- Public message bus: push a message
831
-
832
- ## Signature
833
-
834
- ```typescript
835
- function pushPublic(topic: string, message: any): void;
836
- ```
837
-
838
- ## Parameters
839
-
840
- <table><thead><tr><th>
841
-
842
- Parameter
843
-
844
- </th><th>
845
-
846
- Type
847
-
848
- </th><th>
849
-
850
- Description
851
-
852
- </th></tr></thead>
853
- <tbody><tr><td>
854
-
855
- topic
856
-
857
- </td><td>
858
-
859
- string
860
-
861
- </td><td>
862
-
863
- Theme
864
-
865
- </td></tr>
866
- <tr><td>
867
-
868
- message
869
-
870
- </td><td>
871
-
872
- any
873
-
874
- </td><td>
875
-
876
- Message
877
-
878
- </td></tr>
879
- </tbody></table>
880
-
881
- ## Returns
882
-
883
- void
884
-
885
- ## Remarks
886
-
887
- Each message can only be received by one Puller
888
-
889
- ## Example
890
-
891
- ```javascript
892
- // 1. 在公共总线注册两个取件方(竞争关系)
893
- let receivedByA = false;
894
- const taskA = eda.sys_MessageBus.pullPublic('嘉立创示例_公共推送', () => {
895
- receivedByA = true;
896
- });
897
- const taskB = eda.sys_MessageBus.pullPublic('嘉立创示例_公共推送', (message) => {
898
- console.log('取件方 B 拉到:', message);
899
- });
900
-
901
- // 2. 推送一条消息:先注册的取件方 A 拿走,B 收不到
902
- eda.sys_MessageBus.pushPublic('嘉立创示例_公共推送', '跨扩展任务');
903
-
904
- console.log('取件方 A 是否收到:', receivedByA);
905
-
906
- // 3. 取消任务,恢复原状
907
- taskA.cancel();
908
- taskB.cancel();
909
- console.log('已取消公共拉取任务');
910
- ```
911
-
912
- ### removeprivatemessagebus
913
-
914
- # SYS\_MessageBus.removePrivateMessageBus() method
915
-
916
- Remove Private message bus
917
-
918
- ## Signature
919
-
920
- ```typescript
921
- function removePrivateMessageBus(): void;
922
- ```
923
-
924
- ## Returns
925
-
926
- void
927
-
928
- ## Remarks
929
-
930
- Generally, there is no need to call this method unless you know what you are doing
931
-
932
- ## Example
933
-
934
- ```javascript
935
- // 1. 订阅一个主题并验证能收到消息
936
- let received = null;
937
- eda.sys_MessageBus.subscribe('嘉立创示例_移除总线', (message) => {
938
- received = message;
939
- });
940
- eda.sys_MessageBus.publish('嘉立创示例_移除总线', '移除前的消息');
941
- console.log('移除前收到:', received);
942
-
943
- // 2. 移除私有消息总线,原有订阅全部失效
944
- eda.sys_MessageBus.removePrivateMessageBus();
945
- eda.sys_MessageBus.publish('嘉立创示例_移除总线', '移除后的消息');
946
- console.log('移除后订阅者是否还收到:', received);
947
-
948
- // 3. 再次订阅,总线自动重建恢复正常
949
- eda.sys_MessageBus.subscribe('嘉立创示例_移除总线', (message) => {
950
- received = message;
951
- });
952
- eda.sys_MessageBus.publish('嘉立创示例_移除总线', '重建后的消息');
953
- console.log('重建后收到:', received);
954
- ```
955
-
956
- ### rpccall
957
-
958
- # SYS\_MessageBus.rpcCall() method
959
-
960
- Private message bus: call RPC service
961
-
962
- ## Signature
963
-
964
- ```typescript
965
- function rpcCall(topic: string, message?: any, timeout?: number): Promise<any>;
966
- ```
967
-
968
- ## Parameters
969
-
970
- <table><thead><tr><th>
971
-
972
- Parameter
973
-
974
- </th><th>
975
-
976
- Type
977
-
978
- </th><th>
979
-
980
- Description
981
-
982
- </th></tr></thead>
983
- <tbody><tr><td>
984
-
985
- topic
986
-
987
- </td><td>
988
-
989
- string
990
-
991
- </td><td>
992
-
993
- Theme
994
-
995
- </td></tr>
996
- <tr><td>
997
-
998
- message
999
-
1000
- </td><td>
1001
-
1002
- any
1003
-
1004
- </td><td>
1005
-
1006
- _(Optional)_ Message
1007
-
1008
- </td></tr>
1009
- <tr><td>
1010
-
1011
- timeout
1012
-
1013
- </td><td>
1014
-
1015
- number
1016
-
1017
- </td><td>
1018
-
1019
- _(Optional)_ Timeout
1020
-
1021
- </td></tr>
1022
- </tbody></table>
1023
-
1024
- ## Returns
1025
-
1026
- Promise&lt;any&gt;
1027
-
1028
- RPC service return
1029
-
1030
- ## Example
1031
-
1032
- ```javascript
1033
- // 1. 注册一个 DRC 检查服务(message 是单个参数,用对象打包请求字段)
1034
- eda.sys_MessageBus.rpcService('嘉立创示例_RPC调用', (message) => {
1035
- return `检查完成:${message.rule},发现 ${message.count} 处问题`;
1036
- });
1037
-
1038
- // 2. 发起 RPC 调用,await 直接拿到服务返回值
1039
- const reply = await eda.sys_MessageBus.rpcCall('嘉立创示例_RPC调用', {
1040
- rule: '间距约束',
1041
- count: 2,
1042
- });
1043
- console.log('服务返回:', reply);
1044
- ```
1045
-
1046
- ### rpccallpublic
1047
-
1048
- # SYS\_MessageBus.rpcCallPublic() method
1049
-
1050
- Public message bus: call RPC service
1051
-
1052
- ## Signature
1053
-
1054
- ```typescript
1055
- function rpcCallPublic(topic: string, message?: any, timeout?: number): Promise<any>;
1056
- ```
1057
-
1058
- ## Parameters
1059
-
1060
- <table><thead><tr><th>
1061
-
1062
- Parameter
1063
-
1064
- </th><th>
1065
-
1066
- Type
1067
-
1068
- </th><th>
1069
-
1070
- Description
1071
-
1072
- </th></tr></thead>
1073
- <tbody><tr><td>
1074
-
1075
- topic
1076
-
1077
- </td><td>
1078
-
1079
- string
1080
-
1081
- </td><td>
1082
-
1083
- Theme
1084
-
1085
- </td></tr>
1086
- <tr><td>
1087
-
1088
- message
1089
-
1090
- </td><td>
1091
-
1092
- any
1093
-
1094
- </td><td>
1095
-
1096
- _(Optional)_ Message
1097
-
1098
- </td></tr>
1099
- <tr><td>
1100
-
1101
- timeout
1102
-
1103
- </td><td>
1104
-
1105
- number
1106
-
1107
- </td><td>
1108
-
1109
- _(Optional)_ Timeout
1110
-
1111
- </td></tr>
1112
- </tbody></table>
1113
-
1114
- ## Returns
1115
-
1116
- Promise&lt;any&gt;
1117
-
1118
- RPC service return
1119
-
1120
- ## Example
1121
-
1122
- ```javascript
1123
- // 1. 在公共总线注册一个库查询服务
1124
- eda.sys_MessageBus.rpcServicePublic('嘉立创示例_公共RPC调用', (message) => {
1125
- return { name: message, stock: 1200 };
1126
- });
1127
-
1128
- // 2. 调用公共 RPC 服务,await 拿到返回值
1129
- const reply = await eda.sys_MessageBus.rpcCallPublic('嘉立创示例_公共RPC调用', '0402 电阻');
1130
- console.log('查询结果:', reply.name, '库存', reply.stock);
1131
- ```
1132
-
1133
- ### rpcservice
1134
-
1135
- # SYS\_MessageBus.rpcService() method
1136
-
1137
- Private message bus: register RPC service
1138
-
1139
- ## Signature
1140
-
1141
- ```typescript
1142
- function rpcService(topic: string, callbackFn: (...args: Array<any>) => any | Promise<any>): void;
1143
- ```
1144
-
1145
- ## Parameters
1146
-
1147
- <table><thead><tr><th>
1148
-
1149
- Parameter
1150
-
1151
- </th><th>
1152
-
1153
- Type
1154
-
1155
- </th><th>
1156
-
1157
- Description
1158
-
1159
- </th></tr></thead>
1160
- <tbody><tr><td>
1161
-
1162
- topic
1163
-
1164
- </td><td>
1165
-
1166
- string
1167
-
1168
- </td><td>
1169
-
1170
- Theme
1171
-
1172
- </td></tr>
1173
- <tr><td>
1174
-
1175
- callbackFn
1176
-
1177
- </td><td>
1178
-
1179
- (...args: Array&lt;any&gt;) =&gt; any \| Promise&lt;any&gt;
1180
-
1181
- </td><td>
1182
-
1183
- Callback after receiving the message
1184
-
1185
- </td></tr>
1186
- </tbody></table>
1187
-
1188
- ## Returns
1189
-
1190
- void
1191
-
1192
- ## Example
1193
-
1194
- ```javascript
1195
- // 1. 注册同步服务:直接返回计算结果
1196
- eda.sys_MessageBus.rpcService('嘉立创示例_RPC服务_同步', (message) => {
1197
- return `同步响应:${message}`;
1198
- });
1199
-
1200
- // 2. 注册异步服务:返回 Promise,处理完才响应
1201
- eda.sys_MessageBus.rpcService('嘉立创示例_RPC服务_异步', async (message) => {
1202
- await new Promise(resolve => setTimeout(resolve, 200));
1203
- return `异步响应:${message}`;
1204
- });
1205
-
1206
- // 3. 分别调用两种服务验证
1207
- console.log(await eda.sys_MessageBus.rpcCall('嘉立创示例_RPC服务_同步', '参数甲'));
1208
- console.log(await eda.sys_MessageBus.rpcCall('嘉立创示例_RPC服务_异步', '参数乙'));
1209
- ```
1210
-
1211
- ### rpcservicepublic
1212
-
1213
- # SYS\_MessageBus.rpcServicePublic() method
1214
-
1215
- Public message bus: register RPC service
1216
-
1217
- ## Signature
1218
-
1219
- ```typescript
1220
- function rpcServicePublic(
1221
- topic: string,
1222
- callbackFn: (...args: Array<any>) => any | Promise<any>,
1223
- ): void;
1224
- ```
1225
-
1226
- ## Parameters
1227
-
1228
- <table><thead><tr><th>
1229
-
1230
- Parameter
1231
-
1232
- </th><th>
1233
-
1234
- Type
1235
-
1236
- </th><th>
1237
-
1238
- Description
1239
-
1240
- </th></tr></thead>
1241
- <tbody><tr><td>
1242
-
1243
- topic
1244
-
1245
- </td><td>
1246
-
1247
- string
1248
-
1249
- </td><td>
1250
-
1251
- Theme
1252
-
1253
- </td></tr>
1254
- <tr><td>
1255
-
1256
- callbackFn
1257
-
1258
- </td><td>
1259
-
1260
- (...args: Array&lt;any&gt;) =&gt; any \| Promise&lt;any&gt;
1261
-
1262
- </td><td>
1263
-
1264
- Callback after receiving the message
1265
-
1266
- </td></tr>
1267
- </tbody></table>
1268
-
1269
- ## Returns
1270
-
1271
- void
1272
-
1273
- ## Example
1274
-
1275
- ```javascript
1276
- // 1. 在公共总线注册一个工程信息服务
1277
- eda.sys_MessageBus.rpcServicePublic('嘉立创示例_公共RPC服务', (message) => {
1278
- return `当前工程《示例工程》的${message}已就绪`;
1279
- });
1280
-
1281
- // 2. 用 rpcCallPublic 调用自己注册的公共服务(跨扩展调用同理)
1282
- const reply = await eda.sys_MessageBus.rpcCallPublic('嘉立创示例_公共RPC服务', '原理图数据');
1283
- console.log('公共服务返回:', reply);
1284
- ```
1285
-
1286
- ### subscribe
1287
-
1288
- # SYS\_MessageBus.subscribe() method
1289
-
1290
- Private message bus: subscribe to a message
1291
-
1292
- ## Signature
1293
-
1294
- ```typescript
1295
- function subscribe(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
1296
- ```
1297
-
1298
- ## Parameters
1299
-
1300
- <table><thead><tr><th>
1301
-
1302
- Parameter
1303
-
1304
- </th><th>
1305
-
1306
- Type
1307
-
1308
- </th><th>
1309
-
1310
- Description
1311
-
1312
- </th></tr></thead>
1313
- <tbody><tr><td>
1314
-
1315
- topic
1316
-
1317
- </td><td>
1318
-
1319
- string
1320
-
1321
- </td><td>
1322
-
1323
- Theme
1324
-
1325
- </td></tr>
1326
- <tr><td>
1327
-
1328
- callbackFn
1329
-
1330
- </td><td>
1331
-
1332
- (message: any) =&gt; void
1333
-
1334
- </td><td>
1335
-
1336
- Callback after receiving the message
1337
-
1338
- </td></tr>
1339
- </tbody></table>
1340
-
1341
- ## Returns
1342
-
1343
- [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1344
-
1345
- Message bus task
1346
-
1347
- ## Remarks
1348
-
1349
- Persistent subscription message
1350
-
1351
- ## Example
1352
-
1353
- ```javascript
1354
- // 1. 持久订阅主题
1355
- const received = [];
1356
- const task = eda.sys_MessageBus.subscribe('嘉立创示例_订阅', (message) => {
1357
- received.push(message);
1358
- });
1359
-
1360
- // 2. 连续发布多条消息,每条都能收到
1361
- eda.sys_MessageBus.publish('嘉立创示例_订阅', '第一条');
1362
- eda.sys_MessageBus.publish('嘉立创示例_订阅', '第二条');
1363
- console.log('已收到:', received.join('、'));
1364
-
1365
- // 3. cancel 之后不再接收
1366
- task.cancel();
1367
- eda.sys_MessageBus.publish('嘉立创示例_订阅', '取消后的消息');
1368
- console.log('cancel 后仍停留在:', received.join('、'));
1369
- ```
1370
-
1371
- ### subscribeonce
1372
-
1373
- # SYS\_MessageBus.subscribeOnce() method
1374
-
1375
- Private message bus: subscribe to a message once
1376
-
1377
- ## Signature
1378
-
1379
- ```typescript
1380
- function subscribeOnce(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
1381
- ```
1382
-
1383
- ## Parameters
1384
-
1385
- <table><thead><tr><th>
1386
-
1387
- Parameter
1388
-
1389
- </th><th>
1390
-
1391
- Type
1392
-
1393
- </th><th>
1394
-
1395
- Description
1396
-
1397
- </th></tr></thead>
1398
- <tbody><tr><td>
1399
-
1400
- topic
1401
-
1402
- </td><td>
1403
-
1404
- string
1405
-
1406
- </td><td>
1407
-
1408
- Theme
1409
-
1410
- </td></tr>
1411
- <tr><td>
1412
-
1413
- callbackFn
1414
-
1415
- </td><td>
1416
-
1417
- (message: any) =&gt; void
1418
-
1419
- </td><td>
1420
-
1421
- Callback after receiving the message
1422
-
1423
- </td></tr>
1424
- </tbody></table>
1425
-
1426
- ## Returns
1427
-
1428
- [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1429
-
1430
- Message bus task
1431
-
1432
- ## Example
1433
-
1434
- ```javascript
1435
- // 1. 注册单次订阅
1436
- let received = null;
1437
- const task = eda.sys_MessageBus.subscribeOnce('嘉立创示例_单次订阅', (message) => {
1438
- received = message;
1439
- });
1440
-
1441
- // 2. 发布两条消息:只有第一条触发回调
1442
- eda.sys_MessageBus.publish('嘉立创示例_单次订阅', '首次触发');
1443
- eda.sys_MessageBus.publish('嘉立创示例_单次订阅', '第二次发布');
1444
- console.log('实际收到:', received);
1445
-
1446
- // 3. 消息未到时也可以主动 cancel 放弃等待
1447
- task.cancel();
1448
- console.log('已清理单次订阅任务');
1449
- ```
1450
-
1451
- ### subscribeoncepublic
1452
-
1453
- # SYS\_MessageBus.subscribeOncePublic() method
1454
-
1455
- Public message bus: subscribe to a message once
1456
-
1457
- ## Signature
1458
-
1459
- ```typescript
1460
- function subscribeOncePublic(
1461
- topic: string,
1462
- callbackFn: (message: any) => void,
1463
- ): ISYS_MessageBusTask;
1464
- ```
1465
-
1466
- ## Parameters
1467
-
1468
- <table><thead><tr><th>
1469
-
1470
- Parameter
1471
-
1472
- </th><th>
1473
-
1474
- Type
1475
-
1476
- </th><th>
1477
-
1478
- Description
1479
-
1480
- </th></tr></thead>
1481
- <tbody><tr><td>
1482
-
1483
- topic
1484
-
1485
- </td><td>
1486
-
1487
- string
1488
-
1489
- </td><td>
1490
-
1491
- Theme
1492
-
1493
- </td></tr>
1494
- <tr><td>
1495
-
1496
- callbackFn
1497
-
1498
- </td><td>
1499
-
1500
- (message: any) =&gt; void
1501
-
1502
- </td><td>
1503
-
1504
- Callback after receiving the message
1505
-
1506
- </td></tr>
1507
- </tbody></table>
1508
-
1509
- ## Returns
1510
-
1511
- [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1512
-
1513
- Message bus task
1514
-
1515
- ## Example
1516
-
1517
- ```javascript
1518
- // 1. 在公共总线注册单次订阅
1519
- let received = null;
1520
- eda.sys_MessageBus.subscribeOncePublic('嘉立创示例_公共单次订阅', (message) => {
1521
- received = message;
1522
- });
1523
-
1524
- // 2. 连续两条公共广播:只有第一条触发
1525
- eda.sys_MessageBus.publishPublic('嘉立创示例_公共单次订阅', '首次广播');
1526
- eda.sys_MessageBus.publishPublic('嘉立创示例_公共单次订阅', '第二次广播');
1527
- console.log('实际收到:', received);
1528
-
1529
- // 3. 私有总线的 publish 与公共订阅互不相通(隔离验证)
1530
- eda.sys_MessageBus.publish('嘉立创示例_公共单次订阅', '私有消息');
1531
- console.log('私有消息到达后仍停留在:', received);
1532
- ```
1533
-
1534
- ### subscribepublic
1535
-
1536
- # SYS\_MessageBus.subscribePublic() method
1537
-
1538
- Public message bus: subscribe to a message
1539
-
1540
- ## Signature
1541
-
1542
- ```typescript
1543
- function subscribePublic(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
1544
- ```
1545
-
1546
- ## Parameters
1547
-
1548
- <table><thead><tr><th>
1549
-
1550
- Parameter
1551
-
1552
- </th><th>
1553
-
1554
- Type
1555
-
1556
- </th><th>
1557
-
1558
- Description
1559
-
1560
- </th></tr></thead>
1561
- <tbody><tr><td>
1562
-
1563
- topic
1564
-
1565
- </td><td>
1566
-
1567
- string
1568
-
1569
- </td><td>
1570
-
1571
- Theme
1572
-
1573
- </td></tr>
1574
- <tr><td>
1575
-
1576
- callbackFn
1577
-
1578
- </td><td>
1579
-
1580
- (message: any) =&gt; void
1581
-
1582
- </td><td>
1583
-
1584
- Callback after receiving the message
1585
-
1586
- </td></tr>
1587
- </tbody></table>
1588
-
1589
- ## Returns
1590
-
1591
- [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1592
-
1593
- Message bus task
1594
-
1595
- ## Remarks
1596
-
1597
- Persistent subscription message
1598
-
1599
- ## Example
1600
-
1601
- ```javascript
1602
- // 1. 在公共总线持久订阅主题
1603
- const received = [];
1604
- const task = eda.sys_MessageBus.subscribePublic('嘉立创示例_公共订阅', (message) => {
1605
- received.push(message);
1606
- });
1607
-
1608
- // 2. 公共广播两条都能收到;私有 publish 不会到达
1609
- eda.sys_MessageBus.publishPublic('嘉立创示例_公共订阅', '公共甲');
1610
- eda.sys_MessageBus.publishPublic('嘉立创示例_公共订阅', '公共乙');
1611
- eda.sys_MessageBus.publish('嘉立创示例_公共订阅', '私有丙');
1612
- console.log('已收到:', received.join('、'));
1613
-
1614
- // 3. cancel 之后不再接收
1615
- task.cancel();
1616
- eda.sys_MessageBus.publishPublic('嘉立创示例_公共订阅', '取消后广播');
1617
- console.log('cancel 后仍停留在:', received.join('、'));
1618
- ```
1
+ # SYS\_MessageBus class
2
+
3
+ System / message bus class
4
+
5
+ ## Signature
6
+
7
+ ```typescript
8
+ class SYS_MessageBus
9
+ ```
10
+
11
+ ## Remarks
12
+
13
+ ## Methods
14
+
15
+ <table><thead><tr><th>
16
+
17
+ Method
18
+
19
+ </th><th>
20
+
21
+ Modifiers
22
+
23
+ </th><th>
24
+
25
+ Description
26
+
27
+ </th></tr></thead>
28
+ <tbody><tr><td>
29
+
30
+ [createPrivateMessageBus()](./SYS_MessageBus.md)
31
+
32
+ </td><td>
33
+
34
+ </td><td>
35
+
36
+ Create Private message bus
37
+
38
+ </td></tr>
39
+ <tr><td>
40
+
41
+ [publish(topic, message)](./SYS_MessageBus.md)
42
+
43
+ </td><td>
44
+
45
+ </td><td>
46
+
47
+ Private message bus: publish a message
48
+
49
+ </td></tr>
50
+ <tr><td>
51
+
52
+ [publishPublic(topic, message)](./SYS_MessageBus.md)
53
+
54
+ </td><td>
55
+
56
+ </td><td>
57
+
58
+ Public message bus: publish a message
59
+
60
+ </td></tr>
61
+ <tr><td>
62
+
63
+ [pull(topic, callbackFn)](./SYS_MessageBus.md)
64
+
65
+ </td><td>
66
+
67
+ </td><td>
68
+
69
+ Private message bus: pull a message
70
+
71
+ </td></tr>
72
+ <tr><td>
73
+
74
+ [pullAsync(topic)](./SYS_MessageBus.md)
75
+
76
+ </td><td>
77
+
78
+ </td><td>
79
+
80
+ Private message bus: pull a message (Promise version)
81
+
82
+ </td></tr>
83
+ <tr><td>
84
+
85
+ [pullAsyncPublic(topic)](./SYS_MessageBus.md)
86
+
87
+ </td><td>
88
+
89
+ </td><td>
90
+
91
+ Public message bus: pull a message (Promise version)
92
+
93
+ </td></tr>
94
+ <tr><td>
95
+
96
+ [pullPublic(topic, callbackFn)](./SYS_MessageBus.md)
97
+
98
+ </td><td>
99
+
100
+ </td><td>
101
+
102
+ Public message bus: pull a message
103
+
104
+ </td></tr>
105
+ <tr><td>
106
+
107
+ [push(topic, message)](./SYS_MessageBus.md)
108
+
109
+ </td><td>
110
+
111
+ </td><td>
112
+
113
+ Private message bus: push a message
114
+
115
+ </td></tr>
116
+ <tr><td>
117
+
118
+ [pushPublic(topic, message)](./SYS_MessageBus.md)
119
+
120
+ </td><td>
121
+
122
+ </td><td>
123
+
124
+ Public message bus: push a message
125
+
126
+ </td></tr>
127
+ <tr><td>
128
+
129
+ [removePrivateMessageBus()](./SYS_MessageBus.md)
130
+
131
+ </td><td>
132
+
133
+ </td><td>
134
+
135
+ Remove Private message bus
136
+
137
+ </td></tr>
138
+ <tr><td>
139
+
140
+ [rpcCall(topic, message, timeout)](./SYS_MessageBus.md)
141
+
142
+ </td><td>
143
+
144
+ </td><td>
145
+
146
+ Private message bus: call RPC service
147
+
148
+ </td></tr>
149
+ <tr><td>
150
+
151
+ [rpcCallPublic(topic, message, timeout)](./SYS_MessageBus.md)
152
+
153
+ </td><td>
154
+
155
+ </td><td>
156
+
157
+ Public message bus: call RPC service
158
+
159
+ </td></tr>
160
+ <tr><td>
161
+
162
+ [rpcService(topic, callbackFn)](./SYS_MessageBus.md)
163
+
164
+ </td><td>
165
+
166
+ </td><td>
167
+
168
+ Private message bus: register RPC service
169
+
170
+ </td></tr>
171
+ <tr><td>
172
+
173
+ [rpcServicePublic(topic, callbackFn)](./SYS_MessageBus.md)
174
+
175
+ </td><td>
176
+
177
+ </td><td>
178
+
179
+ Public message bus: register RPC service
180
+
181
+ </td></tr>
182
+ <tr><td>
183
+
184
+ [subscribe(topic, callbackFn)](./SYS_MessageBus.md)
185
+
186
+ </td><td>
187
+
188
+ </td><td>
189
+
190
+ Private message bus: subscribe to a message
191
+
192
+ </td></tr>
193
+ <tr><td>
194
+
195
+ [subscribeOnce(topic, callbackFn)](./SYS_MessageBus.md)
196
+
197
+ </td><td>
198
+
199
+ </td><td>
200
+
201
+ Private message bus: subscribe to a message once
202
+
203
+ </td></tr>
204
+ <tr><td>
205
+
206
+ [subscribeOncePublic(topic, callbackFn)](./SYS_MessageBus.md)
207
+
208
+ </td><td>
209
+
210
+ </td><td>
211
+
212
+ Public message bus: subscribe to a message once
213
+
214
+ </td></tr>
215
+ <tr><td>
216
+
217
+ [subscribePublic(topic, callbackFn)](./SYS_MessageBus.md)
218
+
219
+ </td><td>
220
+
221
+ </td><td>
222
+
223
+ Public message bus: subscribe to a message
224
+
225
+ </td></tr>
226
+ </tbody></table>
227
+
228
+ ---
229
+
230
+ ## 方法详情
231
+
232
+ ### createprivatemessagebus
233
+
234
+ # SYS\_MessageBus.createPrivateMessageBus() method
235
+
236
+ Create Private message bus
237
+
238
+ ## Signature
239
+
240
+ ```typescript
241
+ function createPrivateMessageBus(): void;
242
+ ```
243
+
244
+ ## Returns
245
+
246
+ void
247
+
248
+ ## Remarks
249
+
250
+ Generally, there is no need to call this method. The private message bus is automatically created when listening or sending messages
251
+
252
+ ## Example
253
+
254
+ ```javascript
255
+ // 1. 手动创建私有消息总线(重复调用无副作用)
256
+ eda.sys_MessageBus.createPrivateMessageBus();
257
+
258
+ // 2. 订阅一个主题,验证总线已就绪
259
+ const task = eda.sys_MessageBus.subscribe('嘉立创示例_创建总线', (message) => {
260
+ console.log('订阅者收到:', message);
261
+ });
262
+
263
+ // 3. 发布消息,回调立即触发
264
+ eda.sys_MessageBus.publish('嘉立创示例_创建总线', '总线已创建并可用');
265
+
266
+ // 4. 取消订阅,恢复原状
267
+ task.cancel();
268
+ console.log('已取消订阅');
269
+ ```
270
+
271
+ ### publish
272
+
273
+ # SYS\_MessageBus.publish() method
274
+
275
+ Private message bus: publish a message
276
+
277
+ ## Signature
278
+
279
+ ```typescript
280
+ function publish(topic: string, message: any): void;
281
+ ```
282
+
283
+ ## Parameters
284
+
285
+ <table><thead><tr><th>
286
+
287
+ Parameter
288
+
289
+ </th><th>
290
+
291
+ Type
292
+
293
+ </th><th>
294
+
295
+ Description
296
+
297
+ </th></tr></thead>
298
+ <tbody><tr><td>
299
+
300
+ topic
301
+
302
+ </td><td>
303
+
304
+ string
305
+
306
+ </td><td>
307
+
308
+ Theme
309
+
310
+ </td></tr>
311
+ <tr><td>
312
+
313
+ message
314
+
315
+ </td><td>
316
+
317
+ any
318
+
319
+ </td><td>
320
+
321
+ Message
322
+
323
+ </td></tr>
324
+ </tbody></table>
325
+
326
+ ## Returns
327
+
328
+ void
329
+
330
+ ## Remarks
331
+
332
+ Broadcast the message to every Subscriber
333
+
334
+ ## Example
335
+
336
+ ```javascript
337
+ // 1. 两个不同模块订阅同一主题
338
+ const panelTask = eda.sys_MessageBus.subscribe('嘉立创示例_发布', (message) => {
339
+ console.log('面板模块收到:', message);
340
+ });
341
+ const cacheTask = eda.sys_MessageBus.subscribe('嘉立创示例_发布', (message) => {
342
+ console.log('缓存模块收到:', message);
343
+ });
344
+
345
+ // 2. 发布一条广播消息,两个订阅者都会收到
346
+ eda.sys_MessageBus.publish('嘉立创示例_发布', { source: '工程检查', result: '通过' });
347
+
348
+ // 3. 取消订阅,恢复原状
349
+ panelTask.cancel();
350
+ cacheTask.cancel();
351
+ console.log('已取消全部订阅');
352
+ ```
353
+
354
+ ### publishpublic
355
+
356
+ # SYS\_MessageBus.publishPublic() method
357
+
358
+ Public message bus: publish a message
359
+
360
+ ## Signature
361
+
362
+ ```typescript
363
+ function publishPublic(topic: string, message: any): void;
364
+ ```
365
+
366
+ ## Parameters
367
+
368
+ <table><thead><tr><th>
369
+
370
+ Parameter
371
+
372
+ </th><th>
373
+
374
+ Type
375
+
376
+ </th><th>
377
+
378
+ Description
379
+
380
+ </th></tr></thead>
381
+ <tbody><tr><td>
382
+
383
+ topic
384
+
385
+ </td><td>
386
+
387
+ string
388
+
389
+ </td><td>
390
+
391
+ Theme
392
+
393
+ </td></tr>
394
+ <tr><td>
395
+
396
+ message
397
+
398
+ </td><td>
399
+
400
+ any
401
+
402
+ </td><td>
403
+
404
+ Message
405
+
406
+ </td></tr>
407
+ </tbody></table>
408
+
409
+ ## Returns
410
+
411
+ void
412
+
413
+ ## Remarks
414
+
415
+ Broadcast the message to every Subscriber
416
+
417
+ ## Example
418
+
419
+ ```javascript
420
+ // 1. 两个公共订阅者 + 一个私有订阅者(用于对照隔离性)
421
+ const publicTaskA = eda.sys_MessageBus.subscribePublic('嘉立创示例_公共发布', (message) => {
422
+ console.log('公共订阅者 A 收到:', message);
423
+ });
424
+ const publicTaskB = eda.sys_MessageBus.subscribePublic('嘉立创示例_公共发布', (message) => {
425
+ console.log('公共订阅者 B 收到:', message);
426
+ });
427
+ const privateTask = eda.sys_MessageBus.subscribe('嘉立创示例_公共发布', (message) => {
428
+ console.log('私有订阅者收到:', message);
429
+ });
430
+
431
+ // 2. 在公共总线发布广播,只有公共订阅者会收到
432
+ eda.sys_MessageBus.publishPublic('嘉立创示例_公共发布', '工程已保存');
433
+
434
+ // 3. 取消订阅,恢复原状
435
+ publicTaskA.cancel();
436
+ publicTaskB.cancel();
437
+ privateTask.cancel();
438
+ console.log('已取消全部订阅');
439
+ ```
440
+
441
+ ### pull
442
+
443
+ # SYS\_MessageBus.pull() method
444
+
445
+ Private message bus: pull a message
446
+
447
+ ## Signature
448
+
449
+ ```typescript
450
+ function pull(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
451
+ ```
452
+
453
+ ## Parameters
454
+
455
+ <table><thead><tr><th>
456
+
457
+ Parameter
458
+
459
+ </th><th>
460
+
461
+ Type
462
+
463
+ </th><th>
464
+
465
+ Description
466
+
467
+ </th></tr></thead>
468
+ <tbody><tr><td>
469
+
470
+ topic
471
+
472
+ </td><td>
473
+
474
+ string
475
+
476
+ </td><td>
477
+
478
+ Theme
479
+
480
+ </td></tr>
481
+ <tr><td>
482
+
483
+ callbackFn
484
+
485
+ </td><td>
486
+
487
+ (message: any) =&gt; void
488
+
489
+ </td><td>
490
+
491
+ Callback after a message is pulled
492
+
493
+ </td></tr>
494
+ </tbody></table>
495
+
496
+ ## Returns
497
+
498
+ [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
499
+
500
+ Message bus task
501
+
502
+ ## Remarks
503
+
504
+ Only one message can be pulled at a time
505
+
506
+ ## Example
507
+
508
+ ```javascript
509
+ // 1. 注册拉取回调(每次只能拉一个消息)
510
+ let count = 0;
511
+ const task = eda.sys_MessageBus.pull('嘉立创示例_拉取', (message) => {
512
+ count++;
513
+ console.log('第', count, '次拉到:', message);
514
+ });
515
+
516
+ // 2. 推送两条消息:只有第一条会被这个 Puller 收到
517
+ eda.sys_MessageBus.push('嘉立创示例_拉取', '任务甲');
518
+ eda.sys_MessageBus.push('嘉立创示例_拉取', '任务乙');
519
+
520
+ console.log('拉取次数:', count);
521
+
522
+ // 3. 取消任务(未消费完的排队消息一并放弃)
523
+ task.cancel();
524
+ console.log('已取消拉取任务');
525
+ ```
526
+
527
+ ### pullasync
528
+
529
+ # SYS\_MessageBus.pullAsync() method
530
+
531
+ Private message bus: pull a message (Promise version)
532
+
533
+ ## Signature
534
+
535
+ ```typescript
536
+ function pullAsync(topic: string): Promise<any>;
537
+ ```
538
+
539
+ ## Parameters
540
+
541
+ <table><thead><tr><th>
542
+
543
+ Parameter
544
+
545
+ </th><th>
546
+
547
+ Type
548
+
549
+ </th><th>
550
+
551
+ Description
552
+
553
+ </th></tr></thead>
554
+ <tbody><tr><td>
555
+
556
+ topic
557
+
558
+ </td><td>
559
+
560
+ string
561
+
562
+ </td><td>
563
+
564
+ Theme
565
+
566
+ </td></tr>
567
+ </tbody></table>
568
+
569
+ ## Returns
570
+
571
+ Promise&lt;any&gt;
572
+
573
+ The pulled message
574
+
575
+ ## Remarks
576
+
577
+ Only one message can be pulled at a time. You can use `await` to wait for the message to be pulled
578
+
579
+ ## Example
580
+
581
+ ```javascript
582
+ // 1. 先发起拉取(Promise 挂起等待消息)
583
+ const pending = eda.sys_MessageBus.pullAsync('嘉立创示例_异步拉取');
584
+
585
+ // 2. 推送消息,挂起的 Promise 随即满足
586
+ eda.sys_MessageBus.push('嘉立创示例_异步拉取', { task: '导出 BOM', done: true });
587
+
588
+ // 3. await 直接拿到拉到的消息
589
+ const message = await pending;
590
+ console.log('拉到的消息:', message);
591
+ ```
592
+
593
+ ### pullasyncpublic
594
+
595
+ # SYS\_MessageBus.pullAsyncPublic() method
596
+
597
+ Public message bus: pull a message (Promise version)
598
+
599
+ ## Signature
600
+
601
+ ```typescript
602
+ function pullAsyncPublic(topic: string): Promise<any>;
603
+ ```
604
+
605
+ ## Parameters
606
+
607
+ <table><thead><tr><th>
608
+
609
+ Parameter
610
+
611
+ </th><th>
612
+
613
+ Type
614
+
615
+ </th><th>
616
+
617
+ Description
618
+
619
+ </th></tr></thead>
620
+ <tbody><tr><td>
621
+
622
+ topic
623
+
624
+ </td><td>
625
+
626
+ string
627
+
628
+ </td><td>
629
+
630
+ Theme
631
+
632
+ </td></tr>
633
+ </tbody></table>
634
+
635
+ ## Returns
636
+
637
+ Promise&lt;any&gt;
638
+
639
+ The pulled message
640
+
641
+ ## Remarks
642
+
643
+ Only one message can be pulled at a time. You can use `await` to wait for the message to be pulled
644
+
645
+ ## Example
646
+
647
+ ```javascript
648
+ // 1. 在公共总线发起拉取(Promise 挂起等待消息)
649
+ const pending = eda.sys_MessageBus.pullAsyncPublic('嘉立创示例_公共异步拉取');
650
+
651
+ // 2. 用 pushPublic 投递消息(私有总线的 push 到不了这里)
652
+ eda.sys_MessageBus.pushPublic('嘉立创示例_公共异步拉取', '跨扩展结果已就绪');
653
+
654
+ // 3. await 直接拿到拉到的消息
655
+ const message = await pending;
656
+ console.log('拉到的公共消息:', message);
657
+ ```
658
+
659
+ ### pullpublic
660
+
661
+ # SYS\_MessageBus.pullPublic() method
662
+
663
+ Public message bus: pull a message
664
+
665
+ ## Signature
666
+
667
+ ```typescript
668
+ function pullPublic(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
669
+ ```
670
+
671
+ ## Parameters
672
+
673
+ <table><thead><tr><th>
674
+
675
+ Parameter
676
+
677
+ </th><th>
678
+
679
+ Type
680
+
681
+ </th><th>
682
+
683
+ Description
684
+
685
+ </th></tr></thead>
686
+ <tbody><tr><td>
687
+
688
+ topic
689
+
690
+ </td><td>
691
+
692
+ string
693
+
694
+ </td><td>
695
+
696
+ Theme
697
+
698
+ </td></tr>
699
+ <tr><td>
700
+
701
+ callbackFn
702
+
703
+ </td><td>
704
+
705
+ (message: any) =&gt; void
706
+
707
+ </td><td>
708
+
709
+ Callback after a message is pulled
710
+
711
+ </td></tr>
712
+ </tbody></table>
713
+
714
+ ## Returns
715
+
716
+ [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
717
+
718
+ Message bus task
719
+
720
+ ## Remarks
721
+
722
+ Only one message can be pulled at a time
723
+
724
+ ## Example
725
+
726
+ ```javascript
727
+ // 1. 在公共总线注册拉取回调(一次性)
728
+ const task = eda.sys_MessageBus.pullPublic('嘉立创示例_公共拉取', (message) => {
729
+ console.log('公共总线拉到:', message);
730
+ });
731
+
732
+ // 2. 用 pushPublic 投递消息,回调立即触发
733
+ eda.sys_MessageBus.pushPublic('嘉立创示例_公共拉取', '公共任务甲');
734
+
735
+ // 3. 取消任务,恢复原状
736
+ task.cancel();
737
+ console.log('已取消公共拉取任务');
738
+ ```
739
+
740
+ ### push
741
+
742
+ # SYS\_MessageBus.push() method
743
+
744
+ Private message bus: push a message
745
+
746
+ ## Signature
747
+
748
+ ```typescript
749
+ function push(topic: string, message: any): void;
750
+ ```
751
+
752
+ ## Parameters
753
+
754
+ <table><thead><tr><th>
755
+
756
+ Parameter
757
+
758
+ </th><th>
759
+
760
+ Type
761
+
762
+ </th><th>
763
+
764
+ Description
765
+
766
+ </th></tr></thead>
767
+ <tbody><tr><td>
768
+
769
+ topic
770
+
771
+ </td><td>
772
+
773
+ string
774
+
775
+ </td><td>
776
+
777
+ Theme
778
+
779
+ </td></tr>
780
+ <tr><td>
781
+
782
+ message
783
+
784
+ </td><td>
785
+
786
+ any
787
+
788
+ </td><td>
789
+
790
+ Message
791
+
792
+ </td></tr>
793
+ </tbody></table>
794
+
795
+ ## Returns
796
+
797
+ void
798
+
799
+ ## Remarks
800
+
801
+ Each message can only be received by one Puller
802
+
803
+ ## Example
804
+
805
+ ```javascript
806
+ // 1. 先推送消息(此时还没有 Puller,消息排队保留)
807
+ eda.sys_MessageBus.push('嘉立创示例_推送', '先推后拉的消息');
808
+
809
+ // 2. 再注册拉取回调,排队的消息立即交付
810
+ const task = eda.sys_MessageBus.pull('嘉立创示例_推送', (message) => {
811
+ console.log('拉到排队消息:', message);
812
+ });
813
+
814
+ // 3. 常规顺序演示:先注册再推送
815
+ const task2 = eda.sys_MessageBus.pull('嘉立创示例_推送', (message) => {
816
+ console.log('拉到实时消息:', message);
817
+ });
818
+ eda.sys_MessageBus.push('嘉立创示例_推送', '先拉后推的消息');
819
+
820
+ // 4. 取消任务,恢复原状
821
+ task.cancel();
822
+ task2.cancel();
823
+ console.log('已取消拉取任务');
824
+ ```
825
+
826
+ ### pushpublic
827
+
828
+ # SYS\_MessageBus.pushPublic() method
829
+
830
+ Public message bus: push a message
831
+
832
+ ## Signature
833
+
834
+ ```typescript
835
+ function pushPublic(topic: string, message: any): void;
836
+ ```
837
+
838
+ ## Parameters
839
+
840
+ <table><thead><tr><th>
841
+
842
+ Parameter
843
+
844
+ </th><th>
845
+
846
+ Type
847
+
848
+ </th><th>
849
+
850
+ Description
851
+
852
+ </th></tr></thead>
853
+ <tbody><tr><td>
854
+
855
+ topic
856
+
857
+ </td><td>
858
+
859
+ string
860
+
861
+ </td><td>
862
+
863
+ Theme
864
+
865
+ </td></tr>
866
+ <tr><td>
867
+
868
+ message
869
+
870
+ </td><td>
871
+
872
+ any
873
+
874
+ </td><td>
875
+
876
+ Message
877
+
878
+ </td></tr>
879
+ </tbody></table>
880
+
881
+ ## Returns
882
+
883
+ void
884
+
885
+ ## Remarks
886
+
887
+ Each message can only be received by one Puller
888
+
889
+ ## Example
890
+
891
+ ```javascript
892
+ // 1. 在公共总线注册两个取件方(竞争关系)
893
+ let receivedByA = false;
894
+ const taskA = eda.sys_MessageBus.pullPublic('嘉立创示例_公共推送', () => {
895
+ receivedByA = true;
896
+ });
897
+ const taskB = eda.sys_MessageBus.pullPublic('嘉立创示例_公共推送', (message) => {
898
+ console.log('取件方 B 拉到:', message);
899
+ });
900
+
901
+ // 2. 推送一条消息:先注册的取件方 A 拿走,B 收不到
902
+ eda.sys_MessageBus.pushPublic('嘉立创示例_公共推送', '跨扩展任务');
903
+
904
+ console.log('取件方 A 是否收到:', receivedByA);
905
+
906
+ // 3. 取消任务,恢复原状
907
+ taskA.cancel();
908
+ taskB.cancel();
909
+ console.log('已取消公共拉取任务');
910
+ ```
911
+
912
+ ### removeprivatemessagebus
913
+
914
+ # SYS\_MessageBus.removePrivateMessageBus() method
915
+
916
+ Remove Private message bus
917
+
918
+ ## Signature
919
+
920
+ ```typescript
921
+ function removePrivateMessageBus(): void;
922
+ ```
923
+
924
+ ## Returns
925
+
926
+ void
927
+
928
+ ## Remarks
929
+
930
+ Generally, there is no need to call this method unless you know what you are doing
931
+
932
+ ## Example
933
+
934
+ ```javascript
935
+ // 1. 订阅一个主题并验证能收到消息
936
+ let received = null;
937
+ eda.sys_MessageBus.subscribe('嘉立创示例_移除总线', (message) => {
938
+ received = message;
939
+ });
940
+ eda.sys_MessageBus.publish('嘉立创示例_移除总线', '移除前的消息');
941
+ console.log('移除前收到:', received);
942
+
943
+ // 2. 移除私有消息总线,原有订阅全部失效
944
+ eda.sys_MessageBus.removePrivateMessageBus();
945
+ eda.sys_MessageBus.publish('嘉立创示例_移除总线', '移除后的消息');
946
+ console.log('移除后订阅者是否还收到:', received);
947
+
948
+ // 3. 再次订阅,总线自动重建恢复正常
949
+ eda.sys_MessageBus.subscribe('嘉立创示例_移除总线', (message) => {
950
+ received = message;
951
+ });
952
+ eda.sys_MessageBus.publish('嘉立创示例_移除总线', '重建后的消息');
953
+ console.log('重建后收到:', received);
954
+ ```
955
+
956
+ ### rpccall
957
+
958
+ # SYS\_MessageBus.rpcCall() method
959
+
960
+ Private message bus: call RPC service
961
+
962
+ ## Signature
963
+
964
+ ```typescript
965
+ function rpcCall(topic: string, message?: any, timeout?: number): Promise<any>;
966
+ ```
967
+
968
+ ## Parameters
969
+
970
+ <table><thead><tr><th>
971
+
972
+ Parameter
973
+
974
+ </th><th>
975
+
976
+ Type
977
+
978
+ </th><th>
979
+
980
+ Description
981
+
982
+ </th></tr></thead>
983
+ <tbody><tr><td>
984
+
985
+ topic
986
+
987
+ </td><td>
988
+
989
+ string
990
+
991
+ </td><td>
992
+
993
+ Theme
994
+
995
+ </td></tr>
996
+ <tr><td>
997
+
998
+ message
999
+
1000
+ </td><td>
1001
+
1002
+ any
1003
+
1004
+ </td><td>
1005
+
1006
+ _(Optional)_ Message
1007
+
1008
+ </td></tr>
1009
+ <tr><td>
1010
+
1011
+ timeout
1012
+
1013
+ </td><td>
1014
+
1015
+ number
1016
+
1017
+ </td><td>
1018
+
1019
+ _(Optional)_ Timeout
1020
+
1021
+ </td></tr>
1022
+ </tbody></table>
1023
+
1024
+ ## Returns
1025
+
1026
+ Promise&lt;any&gt;
1027
+
1028
+ RPC service return
1029
+
1030
+ ## Example
1031
+
1032
+ ```javascript
1033
+ // 1. 注册一个 DRC 检查服务(message 是单个参数,用对象打包请求字段)
1034
+ eda.sys_MessageBus.rpcService('嘉立创示例_RPC调用', (message) => {
1035
+ return `检查完成:${message.rule},发现 ${message.count} 处问题`;
1036
+ });
1037
+
1038
+ // 2. 发起 RPC 调用,await 直接拿到服务返回值
1039
+ const reply = await eda.sys_MessageBus.rpcCall('嘉立创示例_RPC调用', {
1040
+ rule: '间距约束',
1041
+ count: 2,
1042
+ });
1043
+ console.log('服务返回:', reply);
1044
+ ```
1045
+
1046
+ ### rpccallpublic
1047
+
1048
+ # SYS\_MessageBus.rpcCallPublic() method
1049
+
1050
+ Public message bus: call RPC service
1051
+
1052
+ ## Signature
1053
+
1054
+ ```typescript
1055
+ function rpcCallPublic(topic: string, message?: any, timeout?: number): Promise<any>;
1056
+ ```
1057
+
1058
+ ## Parameters
1059
+
1060
+ <table><thead><tr><th>
1061
+
1062
+ Parameter
1063
+
1064
+ </th><th>
1065
+
1066
+ Type
1067
+
1068
+ </th><th>
1069
+
1070
+ Description
1071
+
1072
+ </th></tr></thead>
1073
+ <tbody><tr><td>
1074
+
1075
+ topic
1076
+
1077
+ </td><td>
1078
+
1079
+ string
1080
+
1081
+ </td><td>
1082
+
1083
+ Theme
1084
+
1085
+ </td></tr>
1086
+ <tr><td>
1087
+
1088
+ message
1089
+
1090
+ </td><td>
1091
+
1092
+ any
1093
+
1094
+ </td><td>
1095
+
1096
+ _(Optional)_ Message
1097
+
1098
+ </td></tr>
1099
+ <tr><td>
1100
+
1101
+ timeout
1102
+
1103
+ </td><td>
1104
+
1105
+ number
1106
+
1107
+ </td><td>
1108
+
1109
+ _(Optional)_ Timeout
1110
+
1111
+ </td></tr>
1112
+ </tbody></table>
1113
+
1114
+ ## Returns
1115
+
1116
+ Promise&lt;any&gt;
1117
+
1118
+ RPC service return
1119
+
1120
+ ## Example
1121
+
1122
+ ```javascript
1123
+ // 1. 在公共总线注册一个库查询服务
1124
+ eda.sys_MessageBus.rpcServicePublic('嘉立创示例_公共RPC调用', (message) => {
1125
+ return { name: message, stock: 1200 };
1126
+ });
1127
+
1128
+ // 2. 调用公共 RPC 服务,await 拿到返回值
1129
+ const reply = await eda.sys_MessageBus.rpcCallPublic('嘉立创示例_公共RPC调用', '0402 电阻');
1130
+ console.log('查询结果:', reply.name, '库存', reply.stock);
1131
+ ```
1132
+
1133
+ ### rpcservice
1134
+
1135
+ # SYS\_MessageBus.rpcService() method
1136
+
1137
+ Private message bus: register RPC service
1138
+
1139
+ ## Signature
1140
+
1141
+ ```typescript
1142
+ function rpcService(topic: string, callbackFn: (...args: Array<any>) => any | Promise<any>): void;
1143
+ ```
1144
+
1145
+ ## Parameters
1146
+
1147
+ <table><thead><tr><th>
1148
+
1149
+ Parameter
1150
+
1151
+ </th><th>
1152
+
1153
+ Type
1154
+
1155
+ </th><th>
1156
+
1157
+ Description
1158
+
1159
+ </th></tr></thead>
1160
+ <tbody><tr><td>
1161
+
1162
+ topic
1163
+
1164
+ </td><td>
1165
+
1166
+ string
1167
+
1168
+ </td><td>
1169
+
1170
+ Theme
1171
+
1172
+ </td></tr>
1173
+ <tr><td>
1174
+
1175
+ callbackFn
1176
+
1177
+ </td><td>
1178
+
1179
+ (...args: Array&lt;any&gt;) =&gt; any \| Promise&lt;any&gt;
1180
+
1181
+ </td><td>
1182
+
1183
+ Callback after receiving the message
1184
+
1185
+ </td></tr>
1186
+ </tbody></table>
1187
+
1188
+ ## Returns
1189
+
1190
+ void
1191
+
1192
+ ## Example
1193
+
1194
+ ```javascript
1195
+ // 1. 注册同步服务:直接返回计算结果
1196
+ eda.sys_MessageBus.rpcService('嘉立创示例_RPC服务_同步', (message) => {
1197
+ return `同步响应:${message}`;
1198
+ });
1199
+
1200
+ // 2. 注册异步服务:返回 Promise,处理完才响应
1201
+ eda.sys_MessageBus.rpcService('嘉立创示例_RPC服务_异步', async (message) => {
1202
+ await new Promise(resolve => setTimeout(resolve, 200));
1203
+ return `异步响应:${message}`;
1204
+ });
1205
+
1206
+ // 3. 分别调用两种服务验证
1207
+ console.log(await eda.sys_MessageBus.rpcCall('嘉立创示例_RPC服务_同步', '参数甲'));
1208
+ console.log(await eda.sys_MessageBus.rpcCall('嘉立创示例_RPC服务_异步', '参数乙'));
1209
+ ```
1210
+
1211
+ ### rpcservicepublic
1212
+
1213
+ # SYS\_MessageBus.rpcServicePublic() method
1214
+
1215
+ Public message bus: register RPC service
1216
+
1217
+ ## Signature
1218
+
1219
+ ```typescript
1220
+ function rpcServicePublic(
1221
+ topic: string,
1222
+ callbackFn: (...args: Array<any>) => any | Promise<any>,
1223
+ ): void;
1224
+ ```
1225
+
1226
+ ## Parameters
1227
+
1228
+ <table><thead><tr><th>
1229
+
1230
+ Parameter
1231
+
1232
+ </th><th>
1233
+
1234
+ Type
1235
+
1236
+ </th><th>
1237
+
1238
+ Description
1239
+
1240
+ </th></tr></thead>
1241
+ <tbody><tr><td>
1242
+
1243
+ topic
1244
+
1245
+ </td><td>
1246
+
1247
+ string
1248
+
1249
+ </td><td>
1250
+
1251
+ Theme
1252
+
1253
+ </td></tr>
1254
+ <tr><td>
1255
+
1256
+ callbackFn
1257
+
1258
+ </td><td>
1259
+
1260
+ (...args: Array&lt;any&gt;) =&gt; any \| Promise&lt;any&gt;
1261
+
1262
+ </td><td>
1263
+
1264
+ Callback after receiving the message
1265
+
1266
+ </td></tr>
1267
+ </tbody></table>
1268
+
1269
+ ## Returns
1270
+
1271
+ void
1272
+
1273
+ ## Example
1274
+
1275
+ ```javascript
1276
+ // 1. 在公共总线注册一个工程信息服务
1277
+ eda.sys_MessageBus.rpcServicePublic('嘉立创示例_公共RPC服务', (message) => {
1278
+ return `当前工程《示例工程》的${message}已就绪`;
1279
+ });
1280
+
1281
+ // 2. 用 rpcCallPublic 调用自己注册的公共服务(跨扩展调用同理)
1282
+ const reply = await eda.sys_MessageBus.rpcCallPublic('嘉立创示例_公共RPC服务', '原理图数据');
1283
+ console.log('公共服务返回:', reply);
1284
+ ```
1285
+
1286
+ ### subscribe
1287
+
1288
+ # SYS\_MessageBus.subscribe() method
1289
+
1290
+ Private message bus: subscribe to a message
1291
+
1292
+ ## Signature
1293
+
1294
+ ```typescript
1295
+ function subscribe(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
1296
+ ```
1297
+
1298
+ ## Parameters
1299
+
1300
+ <table><thead><tr><th>
1301
+
1302
+ Parameter
1303
+
1304
+ </th><th>
1305
+
1306
+ Type
1307
+
1308
+ </th><th>
1309
+
1310
+ Description
1311
+
1312
+ </th></tr></thead>
1313
+ <tbody><tr><td>
1314
+
1315
+ topic
1316
+
1317
+ </td><td>
1318
+
1319
+ string
1320
+
1321
+ </td><td>
1322
+
1323
+ Theme
1324
+
1325
+ </td></tr>
1326
+ <tr><td>
1327
+
1328
+ callbackFn
1329
+
1330
+ </td><td>
1331
+
1332
+ (message: any) =&gt; void
1333
+
1334
+ </td><td>
1335
+
1336
+ Callback after receiving the message
1337
+
1338
+ </td></tr>
1339
+ </tbody></table>
1340
+
1341
+ ## Returns
1342
+
1343
+ [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1344
+
1345
+ Message bus task
1346
+
1347
+ ## Remarks
1348
+
1349
+ Persistent subscription message
1350
+
1351
+ ## Example
1352
+
1353
+ ```javascript
1354
+ // 1. 持久订阅主题
1355
+ const received = [];
1356
+ const task = eda.sys_MessageBus.subscribe('嘉立创示例_订阅', (message) => {
1357
+ received.push(message);
1358
+ });
1359
+
1360
+ // 2. 连续发布多条消息,每条都能收到
1361
+ eda.sys_MessageBus.publish('嘉立创示例_订阅', '第一条');
1362
+ eda.sys_MessageBus.publish('嘉立创示例_订阅', '第二条');
1363
+ console.log('已收到:', received.join('、'));
1364
+
1365
+ // 3. cancel 之后不再接收
1366
+ task.cancel();
1367
+ eda.sys_MessageBus.publish('嘉立创示例_订阅', '取消后的消息');
1368
+ console.log('cancel 后仍停留在:', received.join('、'));
1369
+ ```
1370
+
1371
+ ### subscribeonce
1372
+
1373
+ # SYS\_MessageBus.subscribeOnce() method
1374
+
1375
+ Private message bus: subscribe to a message once
1376
+
1377
+ ## Signature
1378
+
1379
+ ```typescript
1380
+ function subscribeOnce(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
1381
+ ```
1382
+
1383
+ ## Parameters
1384
+
1385
+ <table><thead><tr><th>
1386
+
1387
+ Parameter
1388
+
1389
+ </th><th>
1390
+
1391
+ Type
1392
+
1393
+ </th><th>
1394
+
1395
+ Description
1396
+
1397
+ </th></tr></thead>
1398
+ <tbody><tr><td>
1399
+
1400
+ topic
1401
+
1402
+ </td><td>
1403
+
1404
+ string
1405
+
1406
+ </td><td>
1407
+
1408
+ Theme
1409
+
1410
+ </td></tr>
1411
+ <tr><td>
1412
+
1413
+ callbackFn
1414
+
1415
+ </td><td>
1416
+
1417
+ (message: any) =&gt; void
1418
+
1419
+ </td><td>
1420
+
1421
+ Callback after receiving the message
1422
+
1423
+ </td></tr>
1424
+ </tbody></table>
1425
+
1426
+ ## Returns
1427
+
1428
+ [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1429
+
1430
+ Message bus task
1431
+
1432
+ ## Example
1433
+
1434
+ ```javascript
1435
+ // 1. 注册单次订阅
1436
+ let received = null;
1437
+ const task = eda.sys_MessageBus.subscribeOnce('嘉立创示例_单次订阅', (message) => {
1438
+ received = message;
1439
+ });
1440
+
1441
+ // 2. 发布两条消息:只有第一条触发回调
1442
+ eda.sys_MessageBus.publish('嘉立创示例_单次订阅', '首次触发');
1443
+ eda.sys_MessageBus.publish('嘉立创示例_单次订阅', '第二次发布');
1444
+ console.log('实际收到:', received);
1445
+
1446
+ // 3. 消息未到时也可以主动 cancel 放弃等待
1447
+ task.cancel();
1448
+ console.log('已清理单次订阅任务');
1449
+ ```
1450
+
1451
+ ### subscribeoncepublic
1452
+
1453
+ # SYS\_MessageBus.subscribeOncePublic() method
1454
+
1455
+ Public message bus: subscribe to a message once
1456
+
1457
+ ## Signature
1458
+
1459
+ ```typescript
1460
+ function subscribeOncePublic(
1461
+ topic: string,
1462
+ callbackFn: (message: any) => void,
1463
+ ): ISYS_MessageBusTask;
1464
+ ```
1465
+
1466
+ ## Parameters
1467
+
1468
+ <table><thead><tr><th>
1469
+
1470
+ Parameter
1471
+
1472
+ </th><th>
1473
+
1474
+ Type
1475
+
1476
+ </th><th>
1477
+
1478
+ Description
1479
+
1480
+ </th></tr></thead>
1481
+ <tbody><tr><td>
1482
+
1483
+ topic
1484
+
1485
+ </td><td>
1486
+
1487
+ string
1488
+
1489
+ </td><td>
1490
+
1491
+ Theme
1492
+
1493
+ </td></tr>
1494
+ <tr><td>
1495
+
1496
+ callbackFn
1497
+
1498
+ </td><td>
1499
+
1500
+ (message: any) =&gt; void
1501
+
1502
+ </td><td>
1503
+
1504
+ Callback after receiving the message
1505
+
1506
+ </td></tr>
1507
+ </tbody></table>
1508
+
1509
+ ## Returns
1510
+
1511
+ [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1512
+
1513
+ Message bus task
1514
+
1515
+ ## Example
1516
+
1517
+ ```javascript
1518
+ // 1. 在公共总线注册单次订阅
1519
+ let received = null;
1520
+ eda.sys_MessageBus.subscribeOncePublic('嘉立创示例_公共单次订阅', (message) => {
1521
+ received = message;
1522
+ });
1523
+
1524
+ // 2. 连续两条公共广播:只有第一条触发
1525
+ eda.sys_MessageBus.publishPublic('嘉立创示例_公共单次订阅', '首次广播');
1526
+ eda.sys_MessageBus.publishPublic('嘉立创示例_公共单次订阅', '第二次广播');
1527
+ console.log('实际收到:', received);
1528
+
1529
+ // 3. 私有总线的 publish 与公共订阅互不相通(隔离验证)
1530
+ eda.sys_MessageBus.publish('嘉立创示例_公共单次订阅', '私有消息');
1531
+ console.log('私有消息到达后仍停留在:', received);
1532
+ ```
1533
+
1534
+ ### subscribepublic
1535
+
1536
+ # SYS\_MessageBus.subscribePublic() method
1537
+
1538
+ Public message bus: subscribe to a message
1539
+
1540
+ ## Signature
1541
+
1542
+ ```typescript
1543
+ function subscribePublic(topic: string, callbackFn: (message: any) => void): ISYS_MessageBusTask;
1544
+ ```
1545
+
1546
+ ## Parameters
1547
+
1548
+ <table><thead><tr><th>
1549
+
1550
+ Parameter
1551
+
1552
+ </th><th>
1553
+
1554
+ Type
1555
+
1556
+ </th><th>
1557
+
1558
+ Description
1559
+
1560
+ </th></tr></thead>
1561
+ <tbody><tr><td>
1562
+
1563
+ topic
1564
+
1565
+ </td><td>
1566
+
1567
+ string
1568
+
1569
+ </td><td>
1570
+
1571
+ Theme
1572
+
1573
+ </td></tr>
1574
+ <tr><td>
1575
+
1576
+ callbackFn
1577
+
1578
+ </td><td>
1579
+
1580
+ (message: any) =&gt; void
1581
+
1582
+ </td><td>
1583
+
1584
+ Callback after receiving the message
1585
+
1586
+ </td></tr>
1587
+ </tbody></table>
1588
+
1589
+ ## Returns
1590
+
1591
+ [ISYS\_MessageBusTask](../interfaces/ISYS_MessageBusTask.md)
1592
+
1593
+ Message bus task
1594
+
1595
+ ## Remarks
1596
+
1597
+ Persistent subscription message
1598
+
1599
+ ## Example
1600
+
1601
+ ```javascript
1602
+ // 1. 在公共总线持久订阅主题
1603
+ const received = [];
1604
+ const task = eda.sys_MessageBus.subscribePublic('嘉立创示例_公共订阅', (message) => {
1605
+ received.push(message);
1606
+ });
1607
+
1608
+ // 2. 公共广播两条都能收到;私有 publish 不会到达
1609
+ eda.sys_MessageBus.publishPublic('嘉立创示例_公共订阅', '公共甲');
1610
+ eda.sys_MessageBus.publishPublic('嘉立创示例_公共订阅', '公共乙');
1611
+ eda.sys_MessageBus.publish('嘉立创示例_公共订阅', '私有丙');
1612
+ console.log('已收到:', received.join('、'));
1613
+
1614
+ // 3. cancel 之后不再接收
1615
+ task.cancel();
1616
+ eda.sys_MessageBus.publishPublic('嘉立创示例_公共订阅', '取消后广播');
1617
+ console.log('cancel 后仍停留在:', received.join('、'));
1618
+ ```