<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ice-online.com/index.php?action=history&amp;feed=atom&amp;title=PIPE</id>
	<title>PIPE - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ice-online.com/index.php?action=history&amp;feed=atom&amp;title=PIPE"/>
	<link rel="alternate" type="text/html" href="https://wiki.ice-online.com/index.php?title=PIPE&amp;action=history"/>
	<updated>2026-04-13T10:37:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.ice-online.com/index.php?title=PIPE&amp;diff=745&amp;oldid=prev</id>
		<title>ConvertBot: Changes the macro piping mode</title>
		<link rel="alternate" type="text/html" href="https://wiki.ice-online.com/index.php?title=PIPE&amp;diff=745&amp;oldid=prev"/>
		<updated>2020-04-27T22:04:44Z</updated>

		<summary type="html">&lt;p&gt;Changes the macro piping mode&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Changes the macro piping mode&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FUNC&amp;gt; - Pipe mode (ON|INIT|RUN|PAUSE|WAIT|WAITFOR|STOP|OFF)&lt;br /&gt;
&amp;lt;P1&amp;gt;   - Only for FUNC=WAITFOR, name of command to wait for&lt;br /&gt;
&lt;br /&gt;
PIPE is an intrinsic for setting the pipe mode within a macro.&lt;br /&gt;
&lt;br /&gt;
  Mode = INIT - Begin piped section parsing&lt;br /&gt;
         ON   - Same as INIT (X-Midas syntax)&lt;br /&gt;
         RUN  - End piped section parsing and start data flow&lt;br /&gt;
         WAIT - Wait here in macro until control STOPs piped mode&lt;br /&gt;
         WAITFOR - Wait here in macro until named primitive &amp;lt;P1&amp;gt; exits&lt;br /&gt;
         OFF  - Same as RUN and WAIT (X-Midas syntax)&lt;br /&gt;
         PAUSE - stop dataflow of pipe section for debug, continue with RUN&lt;br /&gt;
         STOP - Stop piped mode and continue macro execution after piped section&lt;br /&gt;
&lt;br /&gt;
When PIPE ON|INIT occurs in a macro, the ensuing statements up to the  next PIPE&lt;br /&gt;
RUN|WAIT are treated as a piped section.  Pipeable commands  (not Intrinsics) in&lt;br /&gt;
this section are run concurrently in separate threads. Primitives may pipe data,&lt;br /&gt;
pass messages, set or get properties, etc.  GUI interaction is usually&lt;br /&gt;
coordinated by the macro language.&lt;br /&gt;
&lt;br /&gt;
The PIPE STOP command should be executed from the macro's message handler&lt;br /&gt;
procedure to exit the piped mode.  If their are no message handlers or GUI&lt;br /&gt;
controls, the WAITFOR function can be used to exit the piped mode automatically&lt;br /&gt;
when the data flow completes.&lt;br /&gt;
&lt;br /&gt;
Each piped primitive will have an entry (/ID=name) in the registry table. If no&lt;br /&gt;
/ID=name switch is present, it will equal the primitive name.  If more than one&lt;br /&gt;
instance of the primitive appears in the macro, and _# instance  number will be&lt;br /&gt;
appended.&lt;br /&gt;
&lt;br /&gt;
Real-time controls are implemented using the public setXXX and getXXX methods in&lt;br /&gt;
each primitive.  The KeyObject class allows these methods to be accessed from&lt;br /&gt;
the macro language.  For example:&lt;br /&gt;
&lt;br /&gt;
  set reg.waveform.shape &amp;quot;SQUARE&amp;quot;&lt;br /&gt;
  set reg.waveform.freq 3*1e6&lt;br /&gt;
&lt;br /&gt;
These properties can be read by simply using them as any other results&lt;br /&gt;
parameter.&lt;br /&gt;
&lt;br /&gt;
  say &amp;quot;The new amplitude is ^reg.waveform.amp &amp;quot;&lt;br /&gt;
&lt;br /&gt;
Graphical setup in NeXtMidas macros are usually handled by the PANEL primitive.&lt;br /&gt;
See EXPLAIN PANEL for details.  There may be any number of panels in a macro.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
Switches:&lt;br /&gt;
  /PANEL        - Runs the standard PANEL primitive for graphical macros. This&lt;br /&gt;
                  is the same as including a PANEL/MSGID=MAIN/SETUP command as&lt;br /&gt;
                  the next statement in the macro.  This mimics the X-Midas&lt;br /&gt;
                  XPIPE function.&lt;br /&gt;
  /CONTROLS=res - If /PANEL has been specified, then this switch is passed on to&lt;br /&gt;
                  the panel primitive to name the table of controls.&lt;br /&gt;
                  (See EXPLAIN PANEL).&lt;br /&gt;
  /SETUP=opt    - If /PANEL has been specified, then this switch is passed on to&lt;br /&gt;
                  the panel primitive to specify the setup file.&lt;br /&gt;
                  (See EXPLAIN PANEL).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NXM_Explain]]&lt;/div&gt;</summary>
		<author><name>ConvertBot</name></author>
		
	</entry>
</feed>