feat: add EPICS communication support and i18n#2159
Open
honeymelon3 wants to merge 4 commits intofrangoteam:masterfrom
Open
feat: add EPICS communication support and i18n#2159honeymelon3 wants to merge 4 commits intofrangoteam:masterfrom
honeymelon3 wants to merge 4 commits intofrangoteam:masterfrom
Conversation
…vironment\n\n- Fix global 'Gauge' variable conflict in Electron by temporarily disabling CommonJS 'module' in index.html.\n- Improve gauge centering and scaling by adding 'box-sizing: border-box' and optimizing resize logic in NgxGaugeComponent.\n- Ensure the gauge maintains a circular shape by using the minimum dimension of the parent container.
…ranslation keys\n\n- Fix issue where translation keys were lost after initial translation in AppSettingsComponent.\n- Implement real-time UI language preview when selecting from the language dropdown.\n- Add rollback logic to restore previous language if settings are canceled.\n- Refactor SettingsService to use a single TranslateService instance for better consistency.
Member
|
@honeymelon3 Hi, thank you very much for the PR. Could you please move the ngx-gauge related changes into a separate PR? This would help keep the changes more focused and easier to review. Regarding node-epics-ca: have you already considered making it optional, for example by installing it via a plugin, similar to how it’s done for the Ethernet/IP device? In that case, koffi can remain as it is. Thanks again for your work, really appreciated 🚀 |
Author
|
@unocelli thanks for you reply, let me have a try. |
- Add FUXA_EPICS_Paper.md: Academic paper on EPICS integration - Add LANGUAGE_OPTIMIZATION_GUIDE_ZH.md/pdf: Chinese language optimization guide - Add SETTINGS_AND_DATABASE_GUIDE_ZH.md/pdf: Settings and database guide - Add COMMIT_LOG.pdf: EPICS implementation documentation - Update index.html, auth-interceptor.ts, package.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Git Commit Summary: EPICS Driver Implementation & Optimization
0. About EPICS
EPICS (Experimental Physics and Industrial Control System) is a set of open-source software tools, libraries and applications developed collaboratively and used worldwide to create distributed soft real-time control systems for scientific instruments such as particle accelerators, telescopes and other large-scale experimental facilities.
In the context of FUXA, this driver enables seamless integration with EPICS Input/Output Controllers (IOCs) via the Channel Access (CA) protocol, allowing FUXA to act as a powerful web-based HMI/SCADA for complex scientific and industrial environments.
This document summarizes the changes staged for commit to support the EPICS protocol within the FUXA project.
1. Core Changes Summary
Implemented a comprehensive, robust EPICS driver using a high-performance native bridge. This update covers the entire stack from low-level native calls to the frontend configuration UI.
2. Detailed Scope of Changes
Backend (Server)
server/runtime/devices/epics/cainterface.js):ca.dll, replacing legacy FFI implementations._decodeValuelogic to handle single-value Process Variables (PVs), fixing the issue where readbacks were incorrectly displayed as[object ArrayBuffer].put()to ensure string values from the UI are correctly converted to numeric EPICS types.destroy()) to prevent server crashes during project reloads or driver restarts.server/runtime/devices/epics/index.js):server/package.jsonwithkoffiand adjusted dependencies for better stability.Frontend (Client)
tag-property-edit-epicscomponent for managing PV addresses, data types, and monitoring modes.zh-cn.jsonand other assets.Desktop (Electron)
app/electron/main.js):getServerPath()to correctly resolve the server entry point within the packagedresourcesdirectory.app/electron/package.json):asarwithasarUnpackforkoffiandnode-epics-cato ensure native binaries (.dll) are physically available for OS loading.extraResourcesmapping to include necessary server dependencies and client assets.3. Resolved Issues
[object ArrayBuffer].TypeErrorwhen writing numeric values provided as strings.