Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - TheColonel26

Pages: [1] 2
1
Open Discussion / Re: Future .NET Standard support (.Net Core)?
« on: June 14, 2020, 10:35:28 PM »
.NET 5 will merge Core and .NET Framework into one single solution.

https://sdtimes.com/msft/net-5-merges-core-and-net-framework-into-one-solution/
They aren't merging Legacy .Net Framework and Core. They are simply renaming .Net Core to .Net. Further Mono is now going to use the CoreFX libraries on its own CLR. So the Mono Framework Libraries are being dropped. Sure they are spinning it as "Merging" everything, but really they are just dropping dead weight. Calling it merging is just to keep the Luddites from stroking out.

Legacy .Net Framework is dead. They ported WinForms and WPF over so that legacy applications can be maintained.

It looks like the future of UI on .Net is MAUI. Though Linux support is very suspiciously absent. https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui

Again there is also Avalonia (https://github.com/AvaloniaUI/Avalonia) or Modern Forms (https://github.com/modern-forms/Modern.Forms)

2
Open Discussion / Re: Future .NET Standard support (.Net Core)?
« on: April 16, 2020, 03:06:18 PM »
That still wouldn't help anyone that wants to run on Linux though.


3
Open Discussion / Re: Future .NET Standard support (.Net Core)?
« on: March 12, 2020, 10:27:14 AM »
Hi Archie, I assume you mean to update to .Net Core 3, but keep using WinForms correct? So it will still be windows only.

(Yes Mono has a WinForms implementation but it is not maintained anymore, so it's really not safe for production use.)

I assume there is no chance of you porting it to .Net Standard, and use a Cross-platform UI Framework like Avalonia?
https://github.com/AvaloniaUI/Avalonia. That way it could run on Mac and Linux too. Linux is an important one.

Microsoft seems to have no plans to ever develop UI framework tools for Linux.

P.S. We are now on .Net Core 3 what were you waiting for lol? .Net Core 2 Basically Brought almost all the APIs from the old framework over.

Another option might be Running Blazer in a wrapper. https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor

There is a project for hosting it locally that is maintained by a Microsoft employee. https://github.com/SteveSandersonMS/WebWindow

4
Pipe dream.

Conversion to Avalonia https://github.com/AvaloniaUI/Avalonia
Convert to .Net Core and .NetStandard


5
After upgrading to 3.99y, I am receiving this exception when calling on an address that already has one subscription. I am doing this on purpose as I have 2 different threads that share the same FINS comm object. This only happens in Mono. my current system is Debian 9.5 x64. I have tired Mono Version 4.6.2 and Mono Version 5.14.0

so if I call

_FINsCom.Subscribe("W506",1,100, a.DataReceived);
_FINsCom.Subscribe("W506",1,100, b.DataReceived); // I get an exception of System.ArgumentException: An item with the same key has already been added.

when I ran it in 5.14.0 I got the same error except "Key of 0" was tacked on to the end

stack trace is attached

EDIT:

I take that back, it is happening on the first subscription and seems to have nothing to do with multiple subscriptions.

have you used VSMonoDebugger https://github.com/GordianDotNet/VSMonoDebugger? That is what I am using for debugging my application on Mono. See My X-Server Support Issue to get X-Server support working. https://github.com/GordianDotNet/VSMonoDebugger/issues/3

I have no idea why this is happening all of a sudden, it seemed to be working fine before. I even removed all of the AHMI Projects out of my Solution, deleted them and re added them. No change.

EDIT2: I ended up doing this as a workaround, it succeeds on the second try
Code: [Select]

            int retries = 2;
            for (int i = 0; i <= retries; i++)
            {
                try
                {
                    _FINsCom.Subscribe(address, numberOfElements, pollrate, tempAS.InternalDataReceived);
                    break;
                }
                catch (ArgumentException ex) when (ex.Message.Contains("key"))
                {
                    if(i == retries)
                    {
                        Logger?.Error(ex, "AHMI Error encountered while subscribing to {Address}. Retry Limit of {retries} Has been reached", address, i, retries);
                        throw;
                    }
                    else
                    {
                        Logger?.Error(ex, "AHMI Error encountered while subscribing to {Address}. Retry {retry} of {retries}", address, i, retries);
                    }
            }

6
Thank you Archie, Please let me know what you find.

7
Alright Archie, sorry it took me a while to get back to this project.

I updated to Version 3.99y (which I think is the latest correct?)

the Com Error event is now firing however, it keeps passing this message back "DataStartIndex greater than data length", at least one occurrence of this is when I am doing an explicit write for example

Code: [Select]
startAddress = "W510.01";
dataToWrite = "1";
_FINsCom.Write(startAddress, dataToWrite);
it seems that the Write is successful and no exception is thrown, but the error event is fired. I also can't find where error event is raised in the Driver project so it must be in the closed source reference .dll? I did a search through the project with the message text but couldn't find it.


Also On a side note: I have noticed that when I write to a bit address the driver wants "0" or "1" however when I read a bit address, the driver now returns "True" or "False" can this be made consistent? I've had to create some workarounds in my code to address this.

EDIT: Actually now I am not sure when that even is fired it might be during an explicit Read.


8
Nope :( After I am connected I disconnect the Ethernet Cable and I get nothing. The event is never raised.

For the record, I am using version 3.9.9.16. I did comment out the log files writes in the driver class, because at one put I was thinking it was causing a crash on the Raspberry Pi, but I don't think it actually was. Other than that it should be untouched.


9
What is the best way to detect if communications have stopped when using the OmronFINSEthernet Driver? It seems that when you are using subscriptions there are no exceptions thrown.

I am going to do some more investigation on this tomorrow, with a test app. I have the driver under several graph layers in my application I am working on so it is kinda hard to tell what is going on.

10
Open Discussion / Re: The How and Why of AdvancedHMI Licensing
« on: March 30, 2018, 04:52:49 PM »
So why does the License and Usage file state the AHMI is released under the GPL? The restriction from removing components from the source are a violation of the GPL. You can modify the the wording of the GPL all day long, but when you add more restriction it ceases to be the GPL and is no longer compatible with other GPL software. This means that you can not use any other GPL software in a project with AHMI. Otherwise you would be violating the license agreements of other software packages. You can use it with Mozilla, MIT, Free license software, but not with GPL.

11
Open Discussion / Re: The How and Why of AdvancedHMI Licensing
« on: March 29, 2018, 07:58:09 AM »
Quote
How is AdvancedHMI licensed?

    A: In summary, the freely available version can be used and distributed without fees. The project is under GPL which means projects you develop and distribute to end users must make source code available to them. The graphics are copyrighted and can only be used in AdvancedHMI projects. The DLLs can be distributed with projects, but can not be separated to be used in applications other than AdvancedHMI.

    We do not allow the use of the base components to be used in any other software packages, however if you are interested in the controls, we develop custom versions to be used in your own software packages. Eventually we will also license the communication drivers to be used outside of AdvancedHMI. You may contact us for information.

So what is the definition of "base components"?

There are 3 projects that come with AHMI source AdvancedHMI, AdvancedHMIControls, and AdvancedHMIDrivers. Then the AdvancedHMIControls and and AdvancedHMIDrivers projects both reference "MfgControl.AdvancedHMI.Controls" and "MfgControl.AdvancedHMI.Drivers" which are compiled assemblies with no source available. Can the AdvancedHMI and the AdvancedHMIControls project be removed

12
Feature Request / Re: IComComponent new member
« on: March 26, 2018, 07:51:34 AM »
I wasn't suggesting renaming the IPAddress and PortName properties on the concrete classes. Just that they would have a get only property Call IPAddressPortName

C# pseudo code would be something like this on the concrete classes
Ethernet would be like this
Code: [Select]
public string IPAddressPortName {get { return _IPaddress; }}Serial would be something like this
Code: [Select]
public string IPAddressPortName {get { return _portname; }}
Having said that I can now see how that might getting confusing because the concrete classes would have 2 properties, one that is settable and one that is not, they would have different names, but still that could be confusing.

It just occurred to me that I am being dumb, I can just inherit from the the driver classes, implement the new property, and then create a inherited interface and have the new children implement that. Maintenance work should be minimal that way.


13
Feature Request / Re: IComComponent new member
« on: March 22, 2018, 03:42:56 PM »
I think you are misunderstand me. I am asking for a read only string if it is Ethernet it returns the IP address, if it a Serial Port it returns the port name;

I have done this before for an interface that represents a hipot tester, the hardware can be connected to with either Ethernet or Serial.

Yes I have already looked at the interface definition. I considered extending it but I would rather not because I would also have to alter all of the drivers classes which would prevent me from receiving updates unless I kept changing the code each time.

14
Feature Request / IComComponent new member
« on: March 22, 2018, 03:23:51 PM »
I would like to convert all my code over to using IComComponent instead of the concrete driver classes. This is just for future flexibility. My problem is that, I then do not have access to the IP Address which I would like to have for error messages, and logging.

Would you be willing to added a new member to IComComponent somthing like string AddressOrPort { get; } which would either be populated with a IP address or a serial port name.

If not is there any other way I can access it?

15
Support Questions / Re: OmronEthernetFINSCom Thread Safe?
« on: March 21, 2018, 02:36:01 PM »
Awesome this made my day.

BTW Thanks you for all your work on AdvancedHMI Archie.

Pages: [1] 2