• Recent
    • Tags
    • Popular
    • Register
    • Login
    1. Home
    2. Pikey4
    3. Topics

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website
    P
    • Profile
    • Following 1
    • Followers 0
    • Topics 29
    • Posts 64
    • Best 2
    • Controversial 0
    • Groups 0

    Topics created by Pikey4

    • P

      MQTT Data Point Scaling

      Scripting general Discussion
      • • • Pikey4
      2
      0
      Votes
      2
      Posts
      979
      Views

      CraigWebC

      As far as I know, there are not any plans in place right now. But I do agree that this would be useful for all Numeric data points.

    • P

      Quick View and Dialog Window Chart Freeze

      User help
      • • • Pikey4
      3
      0
      Votes
      3
      Posts
      879
      Views

      ThomasEinastoT

      Just a bump on this thread because the problem is still relevant for 3.x versions and probably 4.x if AmCharts 3.x is used there also.

      As analyzing the problem I think the problem lies with the API updating some data where graphs gets nulled straight after Mango updates values using <ma-get-point-values>.

      For fix basically add try {}catch(e){} method on the underlying loop where the bug happens (handleCursorMove method) and this seems to help with the graph not freezing.

      Fix:

      Navigate to /mango_root/web/modules/mangoUI/web

      Open amcharts.js

      search in file for following:

      if (this.prevCursorItem != s || c != this.prevMostCloseGraph) {

      After this add

      try{

      Now search in the file for following (should be basically quite close to previous search.

      this.prevCursorItem = s

      Add after that following

      }catch(e){}

      Then save the file and update cache as amcharts is cached with a version. Now your chart should not freeze while cursor is on the chart. Basically you can do it with overrides folder also as Mango updates will probably lose the fix.

      Pretty printed whole handleCursorMove method with added fix. see Fix start and Fix end comments

      handleCursorMove: function(t) { A.AmSerialChart.base.handleCursorMove.call(this, t); var e = t.target , i = this.categoryAxis; if (t.panning) this.handleCursorHide(t); else if (this.chartData && !e.isHidden) { var s, r = this.graphs; if (r) if (s = i.xToIndex(this.rotate ? t.y : t.x), s = this.chartData[s]) { var n, a, o, c; if (e.oneBalloonOnly && e.valueBalloonsEnabled) { var h = 1 / 0; for (n = r.length - 1; 0 <= n; n--) if ((a = r[n]).balloon.enabled && a.showBalloon && !a.hidden) { if (o = a.valueAxis.id, o = s.axes[o].graphs[a.id], e.showNextAvailable && isNaN(o.y) && !(o = this.getNextItem(o))) continue; o = o.y, "top" == a.showBalloonAt && (o = 0), "bottom" == a.showBalloonAt && (o = this.height); var l = e.mouseX , g = e.mouseY; (o = this.rotate ? Math.abs(l - o) : Math.abs(g - o)) < h && (h = o, c = a) } e.mostCloseGraph = c } if (this.prevCursorItem != s || c != this.prevMostCloseGraph) { /*start of fix*/ try { for (h = [], n = 0; n < r.length; n++) o = (a = r[n]).valueAxis.id, o = s.axes[o].graphs[a.id], e.showNextAvailable && isNaN(o.y) && !(o = this.getNextItem(o)) && a.balloon ? a.balloon.hide() : c && a != c ? (a.showGraphBalloon(o, e.pointer, !1, e.graphBulletSize, e.graphBulletAlpha), a.balloon.hide(0)) : e.valueBalloonsEnabled ? (a.balloon.showBullet = e.bulletsEnabled, a.balloon.bulletSize = e.bulletSize / 2, t.hideBalloons || (a.showGraphBalloon(o, e.pointer, !1, e.graphBulletSize, e.graphBulletAlpha), a.balloon.set && h.push({ balloon: a.balloon, y: a.balloon.pointToY }))) : (a.currentDataItem = o, a.resizeBullet(o, e.graphBulletSize, e.graphBulletAlpha)); e.avoidBalloonOverlapping && this.arrangeBalloons(h), this.prevCursorItem = s /*end of fix*/ } catch (e) {} } this.prevMostCloseGraph = c } r = A.fitToBounds(t.x, 0, e.width), c = A.fitToBounds(t.y, 0, e.height), i.showBalloon(r, c, e.categoryBalloonDateFormat, t.skip), this.updateLegendValues() } },
    • P

      md-card affecting Chart render??

      Dashboard Designer & Custom AngularJS Pages
      • • • Pikey4
      6
      0
      Votes
      6
      Posts
      1.4k
      Views

      P

      Thanks Craig, That looks like the problem, Didn't even see that there .

      Cheers!

    • P

      Manually altering axis

      How-To
      • • • Pikey4
      5
      0
      Votes
      5
      Posts
      1.4k
      Views

      Jared WiltshireJ

      @Pikey4 here's an example

      <ma-watch-list-get ng-model="designer.watchList" parameters="designer.parameters" on-points-change="designer.points = $points" id="ff8f56f8-0074-4f46-95a9-e789cda9836a" watch-list-xid="WL_ed918c86-646f-4760-b5af-d9285ff86505"></ma-watch-list-get> <div class="ma-designer-root" id="70fe9bc9-0fba-4311-8d0d-51ca93706697" style="width: 1366px; height: 768px; position: relative;" ng-init="page = {graphs: [null, {hidden: false}, null, null, null, null, {hidden: false, valueAxis: 'right'}, {hidden: false}]}"> <ma-point-values id="49e1ff96-2f4f-44bc-bfc1-97dc87b4a4cc" points="designer.points" from="dateBar.from" to="dateBar.to" rollup="{{dateBar.rollupType}}" rollup-interval="{{dateBar.rollupIntervals + ' ' + dateBar.rollupIntervalPeriod}}" style="position: absolute; left: 148px; top: 124px;" values="pvs"></ma-point-values> <ma-serial-chart id="2e8f4165-aeae-4555-90e0-efec6d3bd1a2" style="position: absolute; width: 1235px; height: 522px; left: 47px; top: 211px;" values="pvs" points="designer.points" legend="true" default-graph-options="{hidden: true}" graph-options="page.graphs"></ma-serial-chart> <md-input-container id="3e22c62f-6166-4e9a-b308-273131c207cd" style="position: absolute; left: 40px; top: 50px;"> <label>Select axis</label> <md-select ng-model="page.graphs[6].valueAxis"> <md-option value="left">Left</md-option> <md-option value="right">Right</md-option> </md-select> </md-input-container> </div>
    • P

      Disable the Data Point Details in point Value popup

      How-To
      • • • Pikey4
      7
      0
      Votes
      7
      Posts
      1.8k
      Views

      danD

      OK once I realised I was reading into that one a little too much and I just needed to hit the Edit Markup slider and put it in the source for each of the data points, that sorted it.

      Thanks heaps for that!

    • P

      Binary counter

      How-To
      • • • Pikey4
      3
      0
      Votes
      3
      Posts
      1.3k
      Views

      phildunlapP

      Hi Pikey4,

      The "starts" member reflects how many times the point value was logged in the state in the period the statistics are over (so consecutive polls of 'true' if logging all data will be multiple starts). If there are no samples in the period but there is a start value, the starts will show as 0 despite it being true for the whole period. In that sense the proportion may most clearly resemble what you're trying to look at. But, you could certainly figure out from the stats.startValue if it was true at the beginning.

      var stats = p.past(MINUTE, 5); //binary point print( stats.get(true).starts ); print( stats.get(true).proportion );
    • P

      Meta Point Help

      How-To
      • • • Pikey4
      5
      0
      Votes
      5
      Posts
      1.8k
      Views

      P

      Thanks for helping out @CraigWeb @phildunlap @Jared-Wiltshire ,

      I couldn't get it to work with a Persistent TCP data on central server, so set up on an ES on Site and it seems to be tracking good. All the 4's and 1's are lining up where I expect them.

      Thanks Again.

      I got this to work:

      var prevVal = p709.lastValue(2); var thisVal = p709.lastValue(1); var nextVal = p709.lastValue(); if (thisVal >= prevVal && thisVal >= nextVal) { // peak return 4; } else if (thisVal >= prevVal && thisVal < nextVal) { // still climbing return 3; } else if (thisVal < prevVal && thisVal < nextVal) { // trough return 1; } else { // falling return 2; }

      0_1547002473983_mangoChart.png

    • P

      Unknown Error

      User help
      • • • Pikey4
      2
      0
      Votes
      2
      Posts
      900
      Views

      CraigWebC

      Yes I have seen it before in my case Mango was not running on the server. What you are seeing is from your browser cache. Try doing a hard refresh and see what errors you get in your browsers console.

    • P

      Filter Device Name after Tag Select

      Dashboard Designer & Custom AngularJS Pages
      • • • Pikey4
      8
      0
      Votes
      8
      Posts
      1.8k
      Views

      phildunlapP

      To the question of the text in the tag select box, it looks like that's done with transclusion like,

      <md-input-container> <ma-data-point-tag-select ng-model="maDeviceSelect" key='device' restrictions="{Site:maSiteTagSelect}" > <ma-label>Plant or Equipment for the selected Project</ma-label> </ma-data-point-tag-select> </md-input-container>

      And to the initial display issue if you do hardcode the series axis sides, you should be about to do something like,

      <ma-serial-chart ng-if="points.length > 0" .... ></ma-serial-chart>

      to prevent it from showing up when empty with an enormous legend.

    • P

      Watchlist Data Source XID Parameter

      How-To
      • • • Pikey4
      3
      0
      Votes
      3
      Posts
      1.1k
      Views

      P

      Thanks Jared, That does the Trick

    • P

      List of Events

      Dashboard Designer & Custom AngularJS Pages
      • • • Pikey4
      3
      0
      Votes
      3
      Posts
      1.2k
      Views

      P

      Thanks for you r response,

      I have done an upgrade from 3.4 to 3.5 this morning and it now works, so we all good.

    • P

      Google maps marker on click

      Dashboard Designer & Custom AngularJS Pages
      • • • Pikey4
      3
      0
      Votes
      3
      Posts
      1.1k
      Views

      P

      Thanks Jared,

      I think I understand it a bit better now. Will see how we go setting a few markers up.

    • P

      Modbus Publishers

      How-To
      • • • Pikey4
      2
      0
      Votes
      2
      Posts
      887
      Views

      phildunlapP

      Hi Pikey4,

      This seems like something trying would give the best answer for! But,

      Yes you can enable more than one on the same port if the slave IDs are distinct. Yes there is a limit. Modbus has a slave ID space of something like 1-243 but the validation in Mango and Modbus4J should accept any integer 0 <= slaveId <= 255 so potentially there's a limit of 256, but in practice some of those slave IDs may not work.
    • P

      Weather Data Source

      How-To
      • • • Pikey4
      5
      0
      Votes
      5
      Posts
      1.8k
      Views

      P

      Thanks all, This has been very helpful.

    • P

      Smart phone, Tablet Viewing

      Dashboard Designer & Custom AngularJS Pages
      • • • Pikey4
      4
      0
      Votes
      4
      Posts
      1.4k
      Views

      CraigWebC

      Bumping this to find out if I should put the effort into doing a work around on my current SCADA mimics so they can be viewed on safari?

    • P

      Cascade Pump Controller.

      User help
      • • • Pikey4
      2
      0
      Votes
      2
      Posts
      867
      Views

      phildunlapP

      Hi Pikey4,

      We typically encourage use of Mango in a mainly supervisory role to the controller. In my mind, it would primarily matter about how the timing and response needs to be. Should you require a response time that is always necessarily predictable and minuscule, you could encounter complications with things like Java garbage collection and whatnot. Having a webserver would provide an opportunity to spontaneously increase the memory load of the unit, and if it paused control when millisecond timing was important, that would be a problem. I would not let Mango time my engine's firing. But, I wouldn't hesitate to let it toggle my vehicle between driving modes (if I had such modes).

      Beyond timing as a concern (because it will respond within seconds almost always), one could question the reliability of the endeavor. Mango is crashable. You can crash it still by doing things like running massive reports or kicking off an infinite loop in a script validation. What's more, Mango has a webserver, so you need to either lock down access or your control system could get hit with a denial of service attack. Bad news. Then there are the issues that the user of Mango could build into their solution (in haste or innocence) because Mango is complex. If Mango is logging data and the disk fills up, you wouldn't want the process control to suffer. Then there are issues [a] developer[s] create[d], because Mango is complex.

      I'm not familiar with cascading pumps for demand, so I can't comment on the specific problems you may face there. But I certainly think you can have Mango making determinations in your distributed system and submitting controls, for sure. Most situations are different, so there is just cause for much thought on the redundancies required and the ways Mango could fail in a given system, and how the system can fail. We always encourage publishing the data to a cloud Mango instance if you are doing controls with Mango, and then visualizing your data in the cloud instance. We are a SCADA platform, we do SCADA applications.

    • P

      Data Point Reade Permissions Removed

      User help
      • • • Pikey4
      3
      0
      Votes
      3
      Posts
      1.1k
      Views

      P

      Thanks @phildunlap

      Yes it was from a MPTCP Data source. I have altered and will see how it goes.

      Thanks

    • P

      Menu & Pages

      User help
      • • • Pikey4
      10
      0
      Votes
      10
      Posts
      2.3k
      Views

      phildunlapP

      @pikey4 said in Menu & Pages:

      Also have found that if I accidentally select Root - Top Level as a parent item on anything, it wipes the entire menu back to defaults. Which I have found out the hard way.

      I was not able to reproduce that easily. So, if you have further observations on how to make that happen they may be useful.

    • P

      Charts with Dashboard Designer

      Dashboard Designer & Custom AngularJS Pages
      • • • Pikey4
      4
      0
      Votes
      4
      Posts
      1.1k
      Views

      MattFoxM

      Happy to help where I can, I've had more than my fair share of err.. intriguing intricacies with the amcharts stuff.
      If you have any questions, I don't mind the occasional chat message to help you get in the right direction. You'll generally find though that a lot of questions you may have are already here in the forums.
      Good Luck

      Fox

    • P

      Pie Chart Labels

      Dashboard Designer & Custom AngularJS Pages
      • • • Pikey4
      3
      0
      Votes
      3
      Posts
      1.1k
      Views

      P

      Thank Jared,

      That is the go!