drutol / crosshmi Goto Github PK
View Code? Open in Web Editor NEWReactive HMI Android application example
Reactive HMI Android application example
It contributes to #7.
It is an assembly scoped attribute and must not be used inside a class.
It refers to DynamicProxyGenAssembly2
,
repositoryGroup
is a collection of variables that are used to create an Azure device. The following problems must be distinguished:
repositoryGroup
- in production environment it is uselessrepositoryGroup
and device capabilities model used by Azure.This project should not have references to the Azure SDK but it has in
Note: The project doesn't have references to Azure SDK ?!
The only Azure related functionality (including but not limiting to configuration) shall be located in the CrossHMI.LibraryIntegration.AzureGateway
According to the architecture (description covered by the https://commsvr.gitbook.io/ooi/reactive-communication/semanticdata) implementation of the DataRepository
provides it own logging infrastructure. The presented implementation requires ILogger{t}
. It limits the possibility to reuse this library in case the main application doesn't implement this particular interface. It raises a question:
The library requirements are defined in the document Getting Started Tutorial and this implementation doesn't follow this description. It raises typical "chicken/egg - which one was the first" problem and therefore must be recognized as a critical error.
It is very difficult to analyze dependencies if there are so many orphaned using
references.
In the code
Dictionary<Type, Dictionary<string, (ProcessVariableAttribute Attribute, PropertyInfo Property)>>
_propertyMappings =
new Dictionary<Type, Dictionary<string, (ProcessVariableAttribute Attribute, PropertyInfo Property)>>(); //TODO #MP Type cannot be used as the Key
according to the requirements defined for the Dictionary Type
cannot be used as the TKey
OPCUA is too broad and it is recognized as the Client/Server interoperability - I call it interactive networking.
This project must target reactive networking. OPC UA ( 20+ specifications) defines it only in Part 14.
My proposals:
According to the concept described in the documentation https://commsvr.gitbook.io/ooi/reactive-communication/semanticdata the DataManagementSetup is an entry point to a part expanding DataRepository
class. Therefore it must be self-contained and use ONLY types defined in the assembly. Following this rule, all instances must be created inside this class, and there no reason to provide an implementation of selected interfaces as the parameters. According to all examples, this class is parameterless and this patterns should be followed.
Review declarations in the CrossHMI.Shared.Statics
namespace
It is part of #7
It is part of #7
CrossHMI.Shared.Configuration.BoilersConfigurationData
uses JSON. You can add all the required details without marring serialization formats. What is the reason?
To get more visit the Reactive Networking (RxNetworking) Configuration
Severity Code Description Project File Line Suppression State
Warning NU1701 Package 'EnterpriseLibrary.TransientFaultHandling 6.0.1304' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project. CrossHMI.LibraryIntegration.AzureGateway C:\Users\mpostol\source\VS\CrossHMI\CrossHMI\CrossHMI.LibraryIntegration.AzureGateway\CrossHMI.LibraryIntegration.AzureGateway.csproj 1
After reloading I am getting the message:
Severity Code Description Project File Line Suppression State
Error The project CrossHMI.Android is missing Android SDKs required for building. Double-click on this message and follow the prompts to install them.
Provide Getting started
documentation related to VS configuration.
There are 13 obsolete packages that shall be updated.
It contributes to #7
DataManagementSetup
is provided by the NetworkEventsManager
class. According to the separation of concerns rules, it is a placeholder to gather all external injection points used to compose the application, initialize the communication and bind to local resources. Therefore it should be used to implement ViewModel for the View layer.NetworkEventsManager
is a partial class - what is the reason. Ther is no autogenerated code.It is in Node.JS but...
Look at data binding - how to interconnect source data with the widget active parts.
Remove it from the project if no longer needed.
Review the documentation: Getting Started Tutorial mpostol/OPC-UA-OOI#384 and:
This approach is not compliant with the architecture proposed in:
Reactive Networking Application Architecture
It has very serious consequences:
Unfortunately the library does not provide any easy way to map data onto properties which will be later used for displaying the data to the user.
- my concern is if it is true. RferenceApplication contains an example of how to do it.You said: For this reason I had to build some sort of proxy which will allow to manage the process much more easily.
- my concern is how to prove it, how to measure the effort required to (not sure) to implement or to understand or both.
From the description, I can guess that the project provides two independent implementations of the DataRepository
, According to the ReferenceApplication example and the architecture presented in https://commsvr.gitbook.io/ooi/reactive-communication/semanticdata#reactive-networking-application-architecture both need independent implementation of the DataManagementSetup
. It promotes separation of concerns and reusability. Unfortunately, I can find only one implementation of this class, namely NetworkEventsManager
.
It must be recognized as a data error, so some comments are required.
Read more about GitHub Pages Basics.
GitHub Pages sites are publicly available on the internet, even if their repositories are private.
Therefore, GitHub Pages can be refere4nced by a link and available to the public community.
The content should follow the gist:
https://gist.github.com/mpostol/2d3f982ac548a272233956046625b2d6
Use your RAEDME.md and the project description:
OOI Projects
Part of #7
It is not compliant with the proposed architecture Reactive Networking Application Architecture
Read more about GitHub Pages Basics.
GitHub Pages sites are publicly available on the internet, even if their repositories are private.
Therefore, GitHub Pages can be referenced by a link and available to the public community. Be careful to avoid publishing sensitive information.
Pay special attention to how access to a data type is realized in this interface implementation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.