Giter Site home page Giter Site logo

aga8calc's People

Contributors

dependabot[bot] avatar mortensyrevikliknes avatar royvegard avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aga8calc's Issues

Ability to select endpoint

Is your feature request related to a problem? Please describe.
It should be possible to select the OPC server endpoint to connect to.

Describe the solution you'd like
A new entry in the configuration file to select endpoint.
If no endpoint is defined in the configuration file, the current functionality should be used i.e. connect to the "best" endpoint. If an endpoint is defined, but does not exist on the server, it should exit with a FATAL log message.

Add tests for runtime opc client

Running the application and communicating with an opc server should be tested.

Add an opc server to the test project, and create simulated data on the opc server
that the Aga8Calc application can read from and write to.

The behavior of Aga8Calc should be automatically verified.

Use Opc.Ua.Client.ReadValues()

Describe the solution you'd like
Use Opc.Ua.Client.ReadValues() to read all values from OPC server in one go. This is much faster than using Opc.Ua.Client.ReadValue() to read one value at a time.

Additional context
See PhaseOpt

Errors in log file on normal startup

Describe the bug
Errors appear in the log file every time the service is started, even if the startup and connection to the OPC server goes fine.

2019-11-06 12:40:46.1764|INFO|Aga8CalcService.Heartbeat|1|Starting service.|
2019-11-06 12:40:46.2484|INFO|Aga8CalcService.Aga8OpcClient|1|Create an Application Configuration.|
2019-11-06 12:40:47.2634|INFO|Aga8CalcService.Aga8OpcClient|1|Discover endpoints of opc.tcp://127.0.0.1:49320.|
2019-11-06 12:40:48.6600|INFO|Aga8CalcService.Aga8OpcClient|1|Selected endpoint uses: Basic256|
2019-11-06 12:40:48.6757|INFO|Aga8CalcService.Aga8OpcClient|1|Create a session with OPC UA server.|
2019-11-06 12:40:55.3505|ERROR|Aga8CalcService.Heartbeat|10|Opc error.|Opc.Ua.ServiceResultException: Bad
   at Opc.Ua.Client.Session.ReadValue(NodeId nodeId)
   at Aga8CalcService.Heartbeat.TimerElapsed(Object sender, ElapsedEventArgs e) in C:\Appl\src\Aga8Calc\Aga8CalcService\Heartbeat.cs:line 41

The same error is repeated an arbitrary number of times.

To Reproduce
Steps to reproduce the behavior:

  1. Start the service
  2. Open the log file Aga8Calc.log
  3. Find the ERROR log entries

Expected behavior
No errors should appear for a normal startup of the service.

Desktop (please complete the following information):

  • OS: Windows Server 2012 R2
  • Version 0.5.0

AGA8

Hello in advance, where is located aga8.dll ? thanks

Multiple results for one composition

Describe the solution you'd like
For every composition we should be able to define multiple temperature-pressure pairs, and for every temperature-pressure pair we should be able to define multiple results.

<config>
  <composition/>
  <pt>
    <pressure-tag/>
    <temperature-tag/>
    <result-tag/>
    <result-tag/>
  </pt>
  <pt>
    <pressure-tag/>
    <temperature-tag/>
    <result-tag/>
    <result-tag/>
    <result-tag/>
  </pt>
  <pt>
    <pressure-tag/>
    <temperature-tag/>
    <result-tag/>
    <result-tag/>
  </pt>
</config>

Use XML attributes

Describe the solution you'd like
Refactor the pressure_tag and pressure_unit elements into something like:

<Pressure Tag="ns=2;s=1:AI1001?Pressure" Unit="barg">

Do the same for:

  • The temperature_tag and temperature_unit elements.
  • calculation and result_tag
  • The composition_tag and composition_scale arrays

Additional context
See PhaseOptDcs

Use new API for AGA8

Describe the solution you'd like
The API for the AGA8 library will change soon™.
Link to branch
Use the new API that returns all of the parameters in a struct.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.