• BG

    Just adding my 2 cents here.

    I am assuming that the automatic renaming was not created in Mango so as to keep the flexibility and power of configuring the data sources and data points to your own individual configuration styles. As for our organisation, I too have to train my colleagues to set up the logging systems and we also have situations where the customer wants a name changed, has moved the logger to another site or wants to set up an identical system on a new site.

    Since Mango uses the XID to identify the various parts of the system, we make sure the XID’s are very generic, i.e. logger/device id – channel number such as 0001-an1. This way we can change the names to a user friendly description without changing the overall structure of the logging system.

    Just as PhilDunlap said, to make editing the sources and point easier we always export the JSON file, edit the text with a simple find/replace and import the configuration. As long as the XID’s are not changed everything will work. We have also started to use the Bulk Editor in Mango 3. We rarely edit the data sources directly except to tweak a few settings.

    We also have several data sources set up as templates and again we copy the JSON file and edit the data source names, data point names and the this time the XID’s to create new logging systems. We find this quicker to set up and easier to teach. It eliminates a lot of clicking back and forth.

    Cheers,
    Brian

    posted in User help read more
  • BG

    Hello,
    I am using Mango Core: 3.6.3, Mango API: 3.6.1, Mango UI: 3.6.3. I have not run the latest update.

    While working on my SQL data sources, I used the statement test as I usually do. But this is the first time I was working on the SQL data sources with the new UI.

    The statement had a spelling error for the selected table and could not find the table. The new UI did not tell me there was a problem. It just did nothing. I did not get a successful list of parameters below the statement obviously. I checked the MA.log and there was nothing in there either.

    I had to go back to the legacy UI and run the statement test there to get an indication of what the fault was. The legacy UI told me right away that it could not find the table, due to my spelling error.

    Is it possible to get these error messages displayed for the statement test on the new UI?

    Cheers

    Brian

    posted in Mango feedback read more
  • BG

    Hello Phil,
    Thank you for your reply, You have given me some things to think about.
    We use point links because that is what worked in Mango 2. We use them to update a flag column in the MySQL input tables so our SQL data sources know which rows have been read already.

    I was trying to use the point links to do the same job but with an insert command instead of an update command.

    I need the insert command to work with either state of the binary point. I considered setting the SQL point directly but could only work out how to set a single state that way. And that way I would need an On switch and a separate Off switch on the dashboard.

    Any coding advice on how to do this would be very helpful.

    I changed my IF statement to use === (my lack of experience is showing) but I still got the validation error.

    Here is the trace from the Ma.log that occurs when I try to validate:

    ERROR 2019-07-30T07:38:49,400 (com.serotonin.m2m2.web.dwr.util.ExceptionDetectionFilter.doFilter:38) - DWR invocation exception 
    java.lang.ClassCastException: java.lang.String cannot be cast to com.serotonin.m2m2.rt.dataImage.PointValueTime
    	at com.serotonin.m2m2.pointLinks.PointLinksDwr.validateScript(PointLinksDwr.java:179) ~[?:?]
    	at sun.reflect.GeneratedMethodAccessor658.invoke(Unknown Source) ~[?:?]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_161]
    	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_161]
    	at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) ~[dwr-2.0.11.jar:?]
    	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) ~[dwr-2.0.11.jar:?]
    	at com.serotonin.m2m2.web.dwr.util.TranslationsFilter.doFilter(TranslationsFilter.java:37) ~[mango-3.6.3.jar:?]
    	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) ~[dwr-2.0.11.jar:?]
    	at com.serotonin.m2m2.web.dwr.util.ExceptionDetectionFilter.doFilter(ExceptionDetectionFilter.java:26) ~[mango-3.6.3.jar:?]
    	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) ~[dwr-2.0.11.jar:?]
    	at com.serotonin.m2m2.web.dwr.util.DwrPermissionFilter.doFilter(DwrPermissionFilter.java:46) ~[mango-3.6.3.jar:?]
    	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) ~[dwr-2.0.11.jar:?]
    	at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431) ~[dwr-2.0.11.jar:?]
    	at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283) ~[dwr-2.0.11.jar:?]
    	at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) ~[dwr-2.0.11.jar:?]
    	at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) ~[dwr-2.0.11.jar:?]
    	at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146) ~[dwr-2.0.11.jar:?]
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
    	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865) ~[jetty-servlet-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) ~[jetty-servlet-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:108) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at com.serotonin.m2m2.web.filter.MangoShallowEtagHeaderFilter.doFilterInternal(MangoShallowEtagHeaderFilter.java:95) ~[mango-3.6.3.jar:?]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[jetty-servlet-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.authentication.switchuser.SwitchUserFilter.doFilter(SwitchUserFilter.java:200) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at com.serotonin.m2m2.web.mvc.spring.security.RateLimitingFilter.doFilterInternal(RateLimitingFilter.java:56) ~[mango-3.6.3.jar:?]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at com.serotonin.m2m2.web.mvc.spring.security.PermissionExceptionFilter.doFilter(PermissionExceptionFilter.java:34) ~[mango-3.6.3.jar:?]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:155) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:100) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE]
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[jetty-servlet-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) ~[jetty-servlet-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) ~[jetty-security-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) ~[jetty-servlet-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.Server.handle(Server.java:503) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) ~[jetty-server-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) ~[jetty-io-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[jetty-io-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) ~[jetty-io-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) ~[jetty-util-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) ~[jetty-util-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) ~[jetty-util-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) ~[jetty-util-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) ~[jetty-util-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) ~[jetty-util-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) ~[jetty-util-9.4.12.v20180830.jar:9.4.12.v20180830]
    	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
    

    Thank you for your help so far. I will add more info as I stumble my way through this :P

    Cheers

    Brian

    posted in How-To read more
  • BG

    Hello All,
    First of all:
    Mango Core: 3.6.3, Mango API: 3.6.1, Mango UI: 3.6.2, Platform: Centos 7.4.1708
    Java Version: 1.8.0_161, Browser: Chrome 75.0.3770.100 (Official Build) (64-bit)

    I am in need of some advice. I am trying to set up a switch on the dashboard that will control an output on our logger. To change the Digital Output on our loggers I have to insert a row into the loggers MySQL commands table.

    Our system is set up so that the loggers all put their data into a MySQL database, Our Mango 3 uses SQL Data Sources to pull the data and then Meta Data Sources format the data into the values that are displayed on the dashboards.

    I have a settable binary Meta Data Point called control. Using the dashboard examples in the play area, I have a switch that will change the value of the control point and can view the results in the watchlist. So far so good. I need to get the value from the meta point to trigger a MySQL command in an SQL data point that is set to modify table only as shown here:

    INSERT INTO DB1.commands (id, register_type, output_number, state) values (2, 9, 1, ?);
    

    The ? for state should be replaced with the value from the Meta Data Point via a Point Link.

    If this seems to be a long way of inserting the command into the MySQL database please let me know a simpler more direct way.

    The first question I have: Why does the watchlist display the value as Off or On even with the text render set to 0 or 1. and when I validate the script, I get either True or "Success, no new value"
    Here is the export of the data point:

     {
      "dataPoints":[
        {
          "xid":"0002-O1-control",
          "name":"O1 - Digital Output 1 control",
          "enabled":true,
          "loggingType":"ALL",
          "intervalLoggingPeriodType":"MINUTES",
          "intervalLoggingType":"INSTANT",
          "purgeType":"YEARS",
          "pointLocator":{
            "dataType":"BINARY",
            "updateEvent":"NONE",
            "contextUpdateEvent":"CONTEXT_UPDATE",
            "context":[
              {
                "varName":"raw",
                "dataPointXid":"0002-O1-control",
                "updateContext":true
              }
            ],
            "logLevel":"NONE",
            "variableName":"0002-o1",
            "scriptPermissions":[
              "superadmin"
            ],
            "executionDelaySeconds":0,
            "logCount":5,
            "logSize":1.0,
            "script":"return raw.value;",
            "settable":true,
            "updateCronPattern":""
          },
          "eventDetectors":[
          ],
          "plotType":"STEP",
          "rollup":"NONE",
          "unit":"",
          "simplifyType":"NONE",
          "chartColour":"",
          "chartRenderer":{
            "type":"TABLE",
            "limit":10
          },
          "dataSourceXid":"Test-0002",
          "defaultCacheSize":1,
          "deviceName":"Test-0002",
          "discardExtremeValues":false,
          "discardHighLimit":1.7976931348623157E308,
          "discardLowLimit":-1.7976931348623157E308,
          "intervalLoggingPeriod":15,
          "intervalLoggingSampleWindowSize":0,
          "overrideIntervalLoggingSamples":false,
          "preventSetExtremeValues":false,
          "purgeOverride":false,
          "purgePeriod":1,
          "readPermission":"someuser",
          "setExtremeHighLimit":1.7976931348623157E308,
          "setExtremeLowLimit":-1.7976931348623157E308,
          "setPermission":"someuser",
          "tags":{
          },
          "textRenderer":{
            "type":"BINARY",
            "oneColour":"#32cd32",
            "oneLabel":"1",
            "zeroColour":"#ff0000",
            "zeroLabel":"0"
          },
          "tolerance":0.0
        }
      ]
    }
    

    The second question is about the Point Link. I have set up a point link to use the control point above as the source and an SQL data point as the target. I started with this script to test the values from the dashboard:

    return (source.value);
    

    I had stopped there to validate that I was getting the correct values from the source point.
    But again here I get either true or "Success, no new value". Not a false.

    So I tried then to create an If statement that would return either a 1 or 0 for the SQL data point that will run the Insert command. The script was:

    var s1= (source.value);
    if (s1 = true) return '(1)'; return '(0)';
    

    But this does not work. I get the following error when trying to validate:
    0_1564419371083_806b4965-792a-4df7-9550-7ea80514164a-image.png

    Any advice on how to get the MySQL command to be triggered from a dashboard switch would be greatly appreciated.

    Also my apologies if this was addressed in a previous topic but I couldn't find it.

    Cheers
    Brian

    posted in How-To read more
  • BG

    OK Thank you for the quick response Phil.

    Cheers

    Brian

    posted in User help read more
  • BG

    P.S.
    The help file for the text rendering suggest that symbols from the HTML entities could be used. I can't seem to get those to work. I only ever get the text for the entity showing up on the gauge. Such as ° shows up as
    0_1562603220692_14b6f46f-3ce7-4053-869d-c2c023abcbeb-image.png

    I don't want to use the deg symbol but was trying for different symbols as an experiment.

    Cheers

    Brian

    posted in User help read more
  • BG

    Hello Jared,
    At the time I did refresh and waited for the data point to update naturally. The text did not appear.
    However. I just went back to the display to verify before replying and the text has appeared now.

    Thank you. The text renderer is all I need for these data points.

    cheers

    Brian

    posted in User help read more
  • BG

    Hello Phil,
    Thank you for the reply. I will follow up on your suggestions.
    In Mango 2, I was able to use any set of text as the engineering units for the DGLUX displays.
    I was hoping that the addition of the custom units in Mango UI 3.6.1 would similarly allow the use of any text.
    We only need these engineering units for display and logging, They will not be used for conversions since we write the script in the Meta Data points to convert anything we require converted.
    Unfortunately the Analog Text Renderer in MangoUI 3.6.1 does not add the suffix to the gauge data displays.

    Cheers

    Brian

    posted in User help read more
  • BG

    Hello All,
    I am using the following modules:
    Mango Core: 3.6.0
    Mango API: 3.6.0
    Mango UI: 3.6.1
    Platform: Centos 7.4.1708
    Java Version: 1.8.0_161
    Browser: Chrome 75.0.3770.100 (Official Build) (64-bit)

    With the new data source UI I was glad to see the tick box for Custom Display Unit as some of our data is not in the standard SI units. So I ticked the box as shown in the screenshot.

    0_1562327893840_8add9c4a-7d3a-4f4c-bd7c-02a123a66b26-image.png

    However if I put our non standard unit value in the either the Unit or the Display Unit (or both) I get an exception error or validation error and cannot save the data point. The help page for the point properties does not mention the Custom Display Unit as an option.

    Is this working yet? It would be nice to be able to enter engineering units that are not in the accepted lists.

    Cheers

    Brian

    posted in User help read more