Graph of temporal events

I have what I think should be a pretty simple problem to solve, but I just can not work begin.

I have an 'event' - not a LabVIEW event, but a thing that happens. I measure when it starts when it stops happening and carry forward the value of the timestamp in these moments and happening. -Easier to demo, it would be to save the timestamp of each time a Boolean changes state (I simplified my problem a bit for this).

Event occurs for an unknown duration - could be 3 more days, State chaning every 60-2 minutes.

I want to plot a graph of historical events.

(1) in real time

(2) of the log file, I did (should / could be the same code)

Basically, I want to turn a set of data points n, at different times in a square with a timestamp in the base wave chart. The data points are not evenly spaced.

How anyone would set in this respect?

See you soon

James

Hi James,

NA not want to post this as not completely happy with it but it can give you something to look at:

EU set the scale with a property node for some reason when AutoScaling, he left all the data in the middle with large gaps each end.

Do not in fact also looks bad that. The data now fill the entire graph. I don't know why but when I copied in 'Paint' she returned to data with gaps in the middle of each side.

It will be useful.

RGS,

Lucither

Tags: NI Software

Similar Questions

  • the exact position of the mouse click xy graph while he plotted graph with mouse events

    Hello

    IAM using Graph xy for multi locations

    IAM traced graphic with mouse movement and events using the example attached (draw the graph with mouse events)

    but in sub vi Values.vi scale there are two constants 66 and 30 when I change my plot (I also change the scales), then the mouse position and chart position (cursor) value are not well aligned, but when I change the constants mentioned above I get the alignment perfect between the cursor and the last point in the path.

    as I went to another parcel (with scalability again) the same alignment problem resurfaced.

    I need to replace these two constants with something dynamic

    Please help

    concerning

    Mazhar

    solution to my problem is

  • Table of clusters with graph - scale change event Y

    Hello everyone

    I have an array of Clusters with a graphic within each cluster. I need raise an event when the user, type a new value to the scale of the graphs Y and press "Enter" to apply the change. Any ideas how to trigger that?

    I am not considering event 'mouse enter' because I have other events related to that already.

    Thank you

    Dan07

    Given that the graph is in a table, you must dynamically record the event of change of scale. Typical static records are not allowed for the elements of the array, and it is not a good reason why they cannot be admitted, that's why I created an idea for allow static event registration of items in the array. I hope you go to the exchange of ideas and vote for this idea.

  • Problems with .chart-field-background and event managers

    Hello. I am trying to add event handlers to my chart, so that the user can be allowed, click in the chart itself to perform certain actions such as moving, zooming, etc.. To avoid having to deal with the manipulation of mouse clicks that are not the card itself (for example on the axes), I found that:

    . Chart-field-background

    is the area which gives me all of the graphic and nothing else. However, when I move the mouse listeners in this region, the event is recorded only on half of the cells in the table. If you've seen the lack of available JavaFX graphic of background, you know that it contains lines in alternation of cells with a slightly different color. I found that only lines with lighter gray coloring record actually a mouse click on them, which makes me believe that dark grey cells do not form part of the background-field-.chart, but something else on top.

    For me, this is is a failure in the way the map regions are defined. Why can't I get a listener to work in the graphical overview and nothing else? Currently, the only solution seems to be to take the region:

    . Chart-content

    instead and calculate the difference between this region and the .chart field bottom to manually remove mouse clicks that are outside .chart-field-background.

    Someone at - it suggestions? This is true on the JavaFX Jira issue?

    Hello

    I'm not an expert on controls, but here is my suggestion based on your description: when you register an event handler on a node of "substance", it is called only when the mouse points to the context node - I assume that light gray is the transparent and gray with light gray cells background dark cells to fill. So the behavior seems OK - you can't wait for the events to be delivered at bottom when it is covered by the other nodes. I think you should really register Manager on all of the graph and filter events that you do not want to manage. However, this should not require a large part of the calculation of the difference between the regions, it should be possible to do just something like

    if (!background.contains(event.getX(), event.getY())) {
        return;
    }
    

    I hope that does not reach the bottom under the axes as well. Note that if there is the various transformations between the background and the node with the Manager on it, you may need to regenerate the coordinates of

    background.sceneToLocal(event.getSceneX(), event.getSceneY());
    

    And use the method that contains it.

  • Chart with graphic behavior

    I would ask for advice about how to best manage the following scenario:

    I often update a XY Chart, with 12 curves. I created a Subvi ActionEngine which acts as a buffer (add points, read out data) of the graph, and has a few other actions, like emptying the buffer, decimating the data points, etc. So at 1 Hz rate I send data to this XYGraph 12 curves, and it will redraw, everything is OK.

    There are 12 permanent tasks of data acquisition, with a frequency of 1 Hz, I want to show the user how to change the curves. It is also important to have a line of vertical slider so that the user can examine the values to different timestamps (X - values are absolute timestamps). Everything works fine, except that when I turn off the X-autoscale, if the user cannot see lets say the last hour of data points (3600 X 12 points curves, I know I should decimate usually, but LabView usually completely manipulates the situation OK when you have several points and pixels... at least then I can live with that).

    So the problem: If X autoscale is disabled and I have send new data to the chart sets every second, the chart does not display the points on the right side, as in the case of a graph. Shell how I make the chart handle this situation? Shell, I put the 'max' (X-scale - range - Maximum property) of the scale-x via property nodes every second? Is this OK to do? Any other idea?

    A kind of workaround would be to use a chart XY-Graph. The user could inspect lets say later 1 hour of data with the table (or disable autoscale, the last minutes if necessary) and the XY-Graph would work as an overview, the user can manually update by a button and after the game with the zoom features, etc...

    What do you think? How do you manage such a request for data acquisition? If the user needs to see what is happening recently with curves (pressure, flow rates, temperatures), but also be able to examine the evolution of the curves of the last 24 hours...

    Edit: hmm, usually I get new ideas after writing my problem I think I try to attack the problem from the wrong side: instead of fighting with the properties of the graph, I could just create a 'Set Range' action in my Subvi buffer, so when the user wants to see lets say that the last 10 minutes of data , I only send these data to the Subvi points to the curve... hmm I think this would be a more pleasant solution... What do you think?

    Here are a few options. You may want to consider depending on your actual application:

    1. A graph-based mouse event opens a new VI, where you put all the data that you want and let the user to play with him. When they are done, they close and you will return to the live graph. It's somehow easier, because you are working on a separate copy.
    2. The range of the actual data fed to the curve is controlled by a separate scrollbar X. The scale is then set to autoscale. When the user changes the value of the bar to scroll or zoom, you stop the chart update. That you take back the update after a time-out or after the user makes the scrollbar of the max value or after they have pushed a button to refresh.
    3. Feed you all the data in the chart, but you control the X scale. In this case, you must still decide when to stop the change of scale and when come back.
  • Arrow complex

    Hi guys,.

    I had the following problem... and it seems to be rare as (at least I have found no suspicion but that works):

    I want the user to enter a complex number using graphical means (2D compass draw or XY-Graph). In the version of the range the user is supposed to click on a Point in the diagram. As the program acknowledges this, it fills a vector/arrow pointing on this point and starting to analyze the data entered.

    But I had trouble reading the data that I put in the chart. So far I tried to convert the data of Compass 2D in an "every-day-Datatype' to progress further, but failed epicly it already.

    In detail, I went to "compass D-Online Index Array ==> get variant attribute ==> converted to a string as well as the Variation of these various.»

    My hunch is that I use 'Get variant Attribute' simply false

    Someone has any idea how to solve this mess?
    Has a value of compass which attributes?

    Greetings

    Sword of the Eagle

    PS: Attached, you can find a picture of my last try to get the name of the attribute. Needless to say that it does not work so far. The structure resembles the other tries.

    Make a control chart is pretty useless here, then let him as an indicator.

    I never use the fancy graphics, because they appear to be relatively limited.

    Instead, use a plain XY graph and mouse events which gives you the coordinates in pixels. You can easily convert between pixels and appeal of xy coordinates using nodes.

    I also recommend that you attach a real VI instead of an image. What is your version of LabVIEW?

  • Programmatically trigger cursor output?

    Hello

    I use the framework of the actor to develop a large application in LabVIEW. I have the sliders on a graph that trigger data be filled by actors using a structure of the event and a cursor output event. The data are also met (initialized) when the program starts.

    I currently do this initialization using a structure below and a change event of value on the "Init": Boolean

    also described here:

    http://forums.NI.com/T5/LabVIEW-idea-exchange/add-first-run-event-on-event-structure/IDC-p/1044975#M...

    The problem with the help of the 'init' Boolean is that I duplicate the same code in two events: "init": value change and "graph": output cursor events (the event two do exactly the same thing).  Does anyone know how slick combine these the Init event with cursor output event so that the cursor output event fires start? That way I wouldn't have to duplicate my code in two places...

    I've searched and have not found exactly what I needed, sorry if this has been covered somewhere in the forum.

    Taking place your common code? In case the Structure? Could register just for two events:

    Or to register for the event separately to send it to the nested actor:

  • Control chart cursor with keyboard

    Is there a way to move the cursor with the keyboard arrowsbuilt in graphics? If this isn't the case, I think it would be simple to do with the dynamic event record. If the user clicks on the graph, save the events during the arrows button and use the down arrows to move the cursor some default step size. How can only problem, I determine when the user has clicked everywhere except on the graph (graph lost focus) to unregister the key down events? The only way I can think of is to use a component-based mouse event and calculate if the mouse coordinates are on the chart control, and if they are, then don't unsubscribe the events down button again.

    Hello

    I did small example to move the cursor by using the keyboard.

    What I've done is, you press F10 to access the keyboard mode and move the slider or just as you mentioned, click on the graph, it will start

    move the cursor with the keys and when you click anywhere else in the public Service, it will stop that.

    I would like to know if that's what you want.

  • definition of dataProvider

    I'm trying to change the data displayed in a ColumnChart when the user changes the value in a DateField. I initialize the fromDateValue variable and then compare it to the current value of the DateField control. When it is different, I try to update the dataProvider of the graph.

    Event handler for the DateField change event.
    private void dateChanged(date:Date):void {}
    If (date is nothing)
    Alert.Show ("date == null'");
    on the other
    If (fromDate.text! = fromDateValue) {}
    podcastCategoryChart.dataProvider = "{podcastCategories02}";
    }
    }

    < mx:Array id = "podcastCategories02" >
    < mx:Object data = '3' label = "Comedy" / >
    < mx:Object data = '0' label = 'Debate' / >
    < mx:Object data = "4" label = "Design" / >
    < mx:Object data = "4" label = "Magazine" / >
    < mx:Object data = '3' label = 'Science' / >
    < mx:Object data = '3' label = "Self-help" / >
    < mx:Object data = '8' label = 'Technology' / >
    < / mx:Array >

    Unforunately, the result of this is that all, but the drop-down list control fromDate freezing. The DateField text fromDate is not up-to-date, but the drop down menu appears.

    Is there a better way to update dataProviders?

    TIA,

    David

    If it should not be:

    podcastCategoryChart.dataProvider = podcastCategories02;

    Alex Harui

    Flex SDK Developer

    Adobe Systems Inc..

    Blog: http://blogs.adobe.com/aharui

  • How can I use the same graph of façade in several events in a structure of the event?

    I want to display my sensorDAQ signals in a graph.but I have more than one event in the case where the structure to acquire the signal and display it in the first round of graph.the is to acquire signals from threshold and its shown in the graphic as a feedback.after the first event is executed, I'll call the second event, where the other signals are acuired and compared with signals from threshold of event 1 my question is how can I use the same control on front panel in more than two events in the structure of the event? Please answer me I am stuck.

    Hello

    I have attached here an example of doing the same thing using local variables and shift registers. Take a peek inside. Shift register is always a better option than local variables.

    Kind regards

    Amine31

    (Bravo to give good answers, mark it as a solution if your problem is resolved)

  • With the warning in combination with temporal reasoning events

    On the OPA settings and environment settings

    Version of the OPA
    10.3.0.77

    The OPA project properties
    Rule of language: Dutch
    Region: Netherlands (Dutch)

    We use temporal reasoning to make decisions. Example: "Decision X" is initially "uncertain", 01/01/2012 'true' and the 31/12/2012 "uncertain."

    Now, we want to use an uncertain decision X warnings event between a certain time, for example between 01/01/2012 and 31/03/2012.

    something like

    warning ("decision could not do") if
    decision is uncertain between 01/01/2012 and 31/03/2012

    Is this possible?
    Where it is not possible, is there another solution for this problem?

    Thanks in advance.

    I wasn't sure from your question if decision X was to be uncertain for the entire range or just a part of the interval, so here are the descriptions of the two functions to consider:

    IntervalAlways (, )
    Returns true if and only if a Boolean condition is true at any time in the interval between the start date (included) to the end date (exclusive).

    IntervalSometimes (, )
    Returns true if and only if a Boolean condition is always true in the interval between the start date (included) to the end date (exclusive).

    See you soon,.
    Jasmine

  • User event draw a graph

    I have LV2010 and try to trace a user on a stream event. When the user presses Post Event, the same data gets plotted as X (with the help of the plot-style) in red. See attached VI.

    The table has two plots-Num and event. The plot of Num is a 1 second plot continues to random numbers. The second plot is an event of conspiracy with (line X-style plot) and drawn only when the Post event is pressed. The x-axis of the waveform is set for minutes.

    The problem is, when the event Post is pressed, all the data points are highlighted with X-style plot and I want data that a single point at the time highlighted with X-style plot.

    Please help and thanks in advance.

    -ipc

    A version that does what I think you want is attached. The waveform of the event has a point added each iteration, but the value is NaN (not a number) unless the button is pressed. These points with NaN value will not appear in the field, only those with added values when the button is pressed.

    Richard

  • Follow an event in a graph with the mouse cursor 3D

    I'm trying to track events in a 3-d Surface chart. I need track the mouse down and mouse up on top of the slider. Mouse works fine, but when I drag the cursor and let, mouse event does not get the subject of a follow-up, and I have to click the mouse button once to catch the mouse event. Any suggestions?


  • Graph.DefaultPlotRenderers.ReplaceAll () does not change to GUI

    WPF C#

    Hello

    I don't know what I'm doing DefaultPlotRenderers example provided with NEITHER Studio differenly.  I see in the debugger that DefaultPlotRenderers object contains nothing or my custom settings (based on the option that select).  This is what it looks like the debugger in the example of OR.

    Here is my code and any help would be appreciated to greately.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Shapes;

    using NationalInstruments.Controls;
    using NationalInstruments.Controls.Primitives;
    using NationalInstruments.Controls.Rendering;

    namespace FireflyMmwDiagnostics
    {
    partial class GraphLinear: window, INotifyPropertyChanged
    {
    Private bool m_includeMarkers = true;
    public boolean IncludeMarkers
    {
    get {return m_includeMarkers ;}
    Set {m_includeMarkers = value; OnPropertyChanged ("IncludeMarkers"); }
    }

    Public Overridable event PropertyChangedEventHandler PropertyChanged;
    public virtual void OnPropertyChanged (string name)
    {
    Manager PropertyChangedEventHandler = PropertyChanged;
    If (Manager! = null)
    {
    Manager new (EC, PropertyChangedEventArgs (name));
    }
    }
    Private readonly PlotRendererCollection PlotRendererCollectionWithMarkers = new PlotRendererCollection();

    public GraphLinear()
    {
    InitializeComponent();

    DataContext = this;
    }

    public void AddData (list of data )
    {
    T [---] arrayData = new T [data. County, data [0]. Length];

    < data.count;="">
    {
    Create the plot object
    AddPlotToGraph (data [conspiracy]. Length, "");

    Convert the list to a table
    < data[plot].length;="">
    arrayData [field, point] = data [conspiracy] [point];
    }

    Assign data
    Graph.DataSource = arrayData;
    }

    ' Private Sub AddPlotToGraph (dataSize int, string label)
    {
    Brush brush = Utility.RandomBrush ();
    ChartCollection chartCollection = new ChartCollection(dataSize);
    Plot = new Plot (label);
    LinePlotRenderer linePlotRenderer = new LinePlotRenderer() {Stroke = brush, StrokeThickness = 2};
    LinePlotRenderer linePlotRenderer2 = new LinePlotRenderer() {Stroke = brush, StrokeThickness = 8};

    PlotRendererCollectionWithMarkers.Add (linePlotRenderer2); Store away alternating plot setting

    parcel of land. Renderer = linePlotRenderer;
    Graph.Plots.Add (plot);
    }

    ' private void CheckBoxIncludeMarkers_Click (object sender, RoutedEventArgs e)
    {
    If (IncludeMarkers)
    Graph.DefaultPlotRenderers.ReplaceAll (PlotRendererCollectionWithMarkers);
    on the other
    Graph.DefaultPlotRenderers.Clear ();
    }

         This is an excerpt from another class where I make a call to show this graph...

    GraphLinear graphLinear = new GraphLinear();
    graphLinear.AddData (listOfSmaData);
    graphLinear.Show ();

    If you need the motor field set, and then manually update render rendering on all parcels engines would be the way to go.

    If you leave the field undefined rendering engine, you could switch between two groups of default field rendering (i.e. to save both linePlotRenderer and linePlotRenderer2 in the collections and the Manager of the box update with a collection or another).

  • No PropertyChanged event when its plot is changed due to a stretch in NearestPoint SnapMode fire on XYCursor

    I have a graph of waveform with two parcels and a cursor with = NearestPoint SnapMode.

    When you remove the plot that the cursor is currently pointing, I want to associate the slider with another plot.

    For this love, I subscribed to the the cursor PropertyChanged event. When the plot of the cursor change, I expect to be drawn from this event. In the handler, I agree with the Disposed of the new plot event. In the Manager has, I point the cursor to another plot.

    The problem with this approach is that the PropertyChanged event is not raised when the cursor is moved from one parcel to another plot.

    Although there are several ways to work around this problem, this behavior is unexpected. I expect a PropertyChanged to be triggered whenever the plot of the cursor property changes.

    Reproduced with version 2010 SP1 (9.1.0.204)

    Seems that they have made some changes in 2013 MS, see 384987. Thank you for the study.

    I'll look into it when you upgrade.

Maybe you are looking for