cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
Vertigo42
Level I

Dynamic axis reference line update from external source

Hi,

I'm JMP17 user. 

I have a graph with x-axis representing a timestamp. 

I want to build external tool that will be a video player, and I want that tool to keep sending to the jmp graph the current timestamp, and it will be represented as a reference line on the x-axis that will keep moving according the current time on the video player. 

 

to test it I create a dummy app in cpp that keep sending to the stdoutput randome timestamp, compiled it as exe and run it through the jsl script and parse the text and show it on the graph. 

 

I'm wandering if there is any better option to stream data to jmp and keep updating the graph. 

if the video player will be a python app, will it be easier to integrate with the JMP? 

 

Best Regards,

Ran

1 ACCEPTED SOLUTION

Accepted Solutions
Craige_Hales
Super User

Re: Dynamic axis reference line update from external source

There are at least three ways you can stream data into JMP and update a data table with the new values; many platforms can automatically update their graphs when the table updates.

  • You can use a JSL socket. This is a low level approach for non-SSL connections. But once a socket is opened, you can read it in a loop while your external process produces data into a socket. This has the longest learning curve.
  • You can use RunProgram and read the stdout stream from your external process and parse the stdout into data table records. This is modestly complicated and there are a number of examples in the community.
  • You can use DataFeed. See Arduino . This is quite old and not much used, but if it works for you may be easy.

All of these ideas are about the same as far as parsing is concerned; you package the data in a way that JMP can parse it from an infinite stream of characters. RunProgram is my favorite; I've used it with PuTTY  to get stdout from programs on remote computers ( Can JSL talk to Linux? , JSL to Control Raspberry Camera ).

Craige

View solution in original post

2 REPLIES 2
jthi
Super User

Re: Dynamic axis reference line update from external source

You might also get some ideas from Uncharted Blog by @Craige_Hales, such as this New Project Data Points 

-Jarmo
Craige_Hales
Super User

Re: Dynamic axis reference line update from external source

There are at least three ways you can stream data into JMP and update a data table with the new values; many platforms can automatically update their graphs when the table updates.

  • You can use a JSL socket. This is a low level approach for non-SSL connections. But once a socket is opened, you can read it in a loop while your external process produces data into a socket. This has the longest learning curve.
  • You can use RunProgram and read the stdout stream from your external process and parse the stdout into data table records. This is modestly complicated and there are a number of examples in the community.
  • You can use DataFeed. See Arduino . This is quite old and not much used, but if it works for you may be easy.

All of these ideas are about the same as far as parsing is concerned; you package the data in a way that JMP can parse it from an infinite stream of characters. RunProgram is my favorite; I've used it with PuTTY  to get stdout from programs on remote computers ( Can JSL talk to Linux? , JSL to Control Raspberry Camera ).

Craige