Jump to content

API Reference: Difference between revisions

From Flowcode Help
JonnyW (talk | contribs)
XML import
removed API table and provided a link instead
Tag: Replaced
Line 1: Line 1:
<sidebar>API Contents</sidebar>
Flowcode provides an ''application programming interface'' to help writing simulation and PC-side programs.
Flowcode provides an ''application programming interface'' to help writing simulation and PC-side programs.


Line 6: Line 5:
Use of this API is limited to simulation only - when downloaded to the chip these calls will be omitted, so if need be they can be interleaved in downloadable code.
Use of this API is limited to simulation only - when downloaded to the chip these calls will be omitted, so if need be they can be interleaved in downloadable code.


Below is a reference to the classes and macros available:
A reference to the classes and macros available can be found [[Simulation Functionality|here]].
{| class="wikitable"
|-
! colspan="2" | [[API Component|Component]]
|-
| width="30%" | [[API Component.SetInteractive|SetInteractive]]
|Sets whether a component can interact with the mouse
|-
| width="30%" | [[API Component.GetInteractive|GetInteractive]]
|Gets whether a component can interact with the mouse
|-
| width="30%" | [[API Component.SetVisible|SetVisible]]
|Sets whether a component can be seen on the panel
|-
| width="30%" | [[API Component.GetVisible|GetVisible]]
|Gets whether a component can be seen on the panel
|-
| width="30%" | [[API Component.SetSolid|SetSolid]]
|Sets whether a component is checked in collision detections
|-
| width="30%" | [[API Component.GetSolid|GetSolid]]
|Gets whether a component is checked in collision detections
|-
| width="30%" | [[API Component.SetCompile|SetCompile]]
|Sets whether a component is considered for compilation or not
|-
| width="30%" | [[API Component.GetCompile|GetCompile]]
|Gets whether a component will be compiled or not
|-
| width="30%" | [[API Component.GetInstance|GetInstance]]
|Gets the type-instance of the component, >= 1 is valid
|-
| width="30%" | [[API Component.FindChild|FindChild]]
|Finds a named object that is part of the component
|-
| width="30%" | [[API Component.GetParent|GetParent]]
|Gets the owner of the components handle
|-
| width="30%" | [[API Component.GetNext|GetNext]]
|Gets the next (younger) sibling of the components handle
|-
| width="30%" | [[API Component.GetLast|GetLast]]
|Gets the previous (elder) sibling of the components handle
|-
| width="30%" | [[API Component.GetChildHead|GetChildHead]]
|Gets the first (eldest) child of the component
|-
| width="30%" | [[API Component.GetChildTail|GetChildTail]]
|Gets the last (youngest) child of the component
|-
| width="30%" | [[API Component.GetOriginal|GetOriginal]]
|Gets the original definition of the component, returns Current if no original copy
|-
| width="30%" | [[API Component.Clone|Clone]]
|Clones an existing object to another position on the panel
|-
| width="30%" | [[API Component.Delete|Delete]]
|Deletes an existing object, removing it from the panel
|-
! colspan="2" | [[API Component.Property|Component.Property]]
|-
| width="30%" | [[API Component.Property.GetValue|GetValue]]
|Gets the value of a property as a string
|-
| width="30%" | [[API Component.Property.SetColor|SetColor]]
|Sets a components 'color' property as a R,G,B value
|-
| width="30%" | [[API Component.Property.SetValue|SetValue]]
|Sets a components property as a string
|-
| width="30%" | [[API Component.Property.CopyValue|CopyValue]]
|Copies a property value from one target to another
|-
| width="30%" | [[API Component.Property.SetChildValues|SetChildValues]]
|Sets all child components property as a string
|-
| width="30%" | [[API Component.Property.CopyChildValues|CopyChildValues]]
|Copies the values of a properties children from the source to dest
|-
| width="30%" | [[API Component.Property.SetVisible|SetVisible]]
|Sets whether the property is visible or not
|-
| width="30%" | [[API Component.Property.SetWritable|SetWritable]]
|Sets whether the property can be edited in the UI or not
|-
| width="30%" | [[API Component.Property.GetVisible|GetVisible]]
|Gets whether the property is visible or not
|-
| width="30%" | [[API Component.Property.GetWritable|GetWritable]]
|Gets whether the property can be edited in the UI or not
|-
| width="30%" | [[API Component.Property.GetFilter|GetFilter]]
|Gets a components property filter string for lists, files, etc
|-
| width="30%" | [[API Component.Property.SetFilter|SetFilter]]
|Sets a components property filter string for lists, files, etc
|-
| width="30%" | [[API Component.Property.CopyFilter|CopyFilter]]
|Copies a property filter from one target to another
|-
| width="30%" | [[API Component.Property.GetListIndex|GetListIndex]]
|Gets a single lists index value from a property by line number
|-
| width="30%" | [[API Component.Property.GetListItem|GetListItem]]
|Gets a single list entry from a property by named index
|-
| width="30%" | [[API Component.Property.SetListItem|SetListItem]]
|Sets an existing list entries text for the property by named index
|-
| width="30%" | [[API Component.Property.AddListItem|AddListItem]]
|Alters or appends a list entries text for the property by named index
|-
! colspan="2" | [[API Panel.Position|Panel.Position]]
|-
| width="30%" | [[API Panel.Position.Get|Get]]
|Gets a handle to an object representing the components current position
|-
| width="30%" | [[API Panel.Position.GetOrigin|GetOrigin]]
|Gets a handle to an empty position
|-
| width="30%" | [[API Panel.Position.Set|Set]]
|Sets an objects position based on a component or pre-defined position
|-
| width="30%" | [[API Panel.Position.SetCoords|SetCoords]]
|Sets an objects coordinates based on a position
|-
| width="30%" | [[API Panel.Position.SetScale|SetScale]]
|Sets an objects scale based on a position
|-
| width="30%" | [[API Panel.Position.SetRotation|SetRotation]]
|Sets an objects orientation based on a position
|-
| width="30%" | [[API Panel.Position.GetBox|GetBox]]
|Gets a handle to an object representing the components bounding box position
|-
| width="30%" | [[API Panel.Position.Morph|Morph]]
|Blends positions from two sources to a destination
|-
| width="30%" | [[API Panel.Position.Animate|Animate]]
|Blends positions from two sources to a destination over time
|-
| width="30%" | [[API Panel.Position.StopAnimate|StopAnimate]]
|Stops all animations started by this component
|-
| width="30%" | [[API Panel.Position.MoveAlong|MoveAlong]]
|Moves the object by the given offset relative to its parent along an axis
|-
| width="30%" | [[API Panel.Position.MoveBy|MoveBy]]
|Moves the object by the given offset relative to its parent
|-
| width="30%" | [[API Panel.Position.MoveTo|MoveTo]]
|Moves the object to the given coordinates relative to its parent
|-
| width="30%" | [[API Panel.Position.ScaleTo|ScaleTo]]
|Sets the objects scale to a value
|-
| width="30%" | [[API Panel.Position.ScaleUp|ScaleUp]]
|Multiplies the objects scale by a value
|-
| width="30%" | [[API Panel.Position.ScaleDown|ScaleDown]]
|Divides the objects scale by a value
|-
| width="30%" | [[API Panel.Position.RotateTo|RotateTo]]
|Rotates the object to the given rotation
|-
| width="30%" | [[API Panel.Position.RotateAlong|RotateAlong]]
|Rotates the object by the given rotation along an axis
|-
| width="30%" | [[API Panel.Position.RotateX|RotateX]]
|Rotates the object around the X axis
|-
| width="30%" | [[API Panel.Position.RotateY|RotateY]]
|Rotates the object around the Y axis
|-
| width="30%" | [[API Panel.Position.RotateZ|RotateZ]]
|Rotates the object around the Z axis
|-
| width="30%" | [[API Panel.Position.GetCoords|GetCoords]]
|Returns the positions coordinates in (X,Y,Z) array
|-
| width="30%" | [[API Panel.Position.GetScale|GetScale]]
|Returns the positions scale in (X,Y,Z) array
|-
| width="30%" | [[API Panel.Position.GetQuat|GetQuat]]
|Returns the positions quaternion in (X,Y,Z,W) array
|-
| width="30%" | [[API Panel.Position.GetEuler|GetEuler]]
|Returns the positions euler angles in (P,Y,R) array
|-
! colspan="2" | [[API Panel.Position.Math|Panel.Position.Math]]
|-
| width="30%" | [[API Panel.Position.Math.GetDistance|GetDistance]]
|Gets the distance between two positions
|-
| width="30%" | [[API Panel.Position.Math.GetDiff|GetDiff]]
|Gets the difference between two positions
|-
! colspan="2" | [[API Panel.Position.Camera|Panel.Position.Camera]]
|-
| width="30%" | [[API Panel.Position.Camera.GetEye|GetEye]]
|Gets a handle to the eye camera position
|-
| width="30%" | [[API Panel.Position.Camera.GetTarget|GetTarget]]
|Gets a handle to the target camera position
|-
| width="30%" | [[API Panel.Position.Camera.SetView|SetView]]
|Sets the eye and target focal point of the camera
|-
| width="30%" | [[API Panel.Position.Camera.SetLookAt|SetLookAt]]
|Sets the eye and target point of the camera
|-
| width="30%" | [[API Panel.Position.Camera.SetEye|SetEye]]
|Sets the eye point of the camera
|-
| width="30%" | [[API Panel.Position.Camera.SetTarget|SetTarget]]
|Sets the target point of the camera
|-
| width="30%" | [[API Panel.Position.Camera.Spin|Spin]]
|Rotates the camera along its view axis
|-
! colspan="2" | [[API Panel.PCloud|Panel.PCloud]]
|-
| width="30%" | [[API Panel.PCloud.Create|Create]]
|Creates a new point cloud tied to a position handle
|-
| width="30%" | [[API Panel.PCloud.SetPos|SetPos]]
|Sets the position for the point cloud to be located at
|-
| width="30%" | [[API Panel.PCloud.GetPos|GetPos]]
|Gets the position the point cloud is located at
|-
| width="30%" | [[API Panel.PCloud.SetPoints|SetPoints]]
|Sets the X,Y,Z point lists
|-
| width="30%" | [[API Panel.PCloud.SetPointsEx|SetPointsEx]]
|Sets the X,Y,Z point lists
|-
| width="30%" | [[API Panel.PCloud.SetGrid|SetGrid]]
|Sets the X,Y,Z point lists in a height-map grid
|-
| width="30%" | [[API Panel.PCloud.SetGridEx|SetGridEx]]
|Sets the X,Y,Z point lists in a height-map grid
|-
| width="30%" | [[API Panel.PCloud.SetGridFlat|SetGridFlat]]
|Sets the X,Y,Z point lists in a flat  height-map grid
|-
| width="30%" | [[API Panel.PCloud.SetGridPoint|SetGridPoint]]
|Given an XY on the grid, sets the vertex value at that point
|-
| width="30%" | [[API Panel.PCloud.UnitScale|UnitScale]]
|Creates a unit scaled axis (X, Y or Z) with a center of zero and a range of two
|-
| width="30%" | [[API Panel.PCloud.SetColor|SetColor]]
|Sets the RGB colour of the entire cloud
|-
| width="30%" | [[API Panel.PCloud.SetColors|SetColors]]
|Sets the RGB colour of the individual points in the cloud
|-
| width="30%" | [[API Panel.PCloud.SetGridColor|SetGridColor]]
|Given an XY on the grid, sets the vertex colour at that point
|-
| width="30%" | [[API Panel.PCloud.SetMode|SetMode]]
|Sets the rendering mode of the point cloud
|-
| width="30%" | [[API Panel.PCloud.SetPointLight|SetPointLight]]
|Enables or disables simple lighting for point mode, providing a normal passing through the point and (0,0,0)
|-
| width="30%" | [[API Panel.PCloud.Update|Update]]
|Manually refresh the screen the point cloud exists on
|-
! colspan="2" | [[API Panel.LinkBar|Panel.LinkBar]]
|-
| width="30%" | [[API Panel.LinkBar.Create|Create]]
|Creates a new bar linking a pair of position handles
|-
| width="30%" | [[API Panel.LinkBar.SetVisible|SetVisible]]
|Sets whether the link is displayed or not
|-
| width="30%" | [[API Panel.LinkBar.SetStartPos|SetStartPos]]
|Sets the position for the start point of the bar
|-
| width="30%" | [[API Panel.LinkBar.SetEndPos|SetEndPos]]
|Sets the position for the end point of the bar
|-
| width="30%" | [[API Panel.LinkBar.SetStartAdjustment|SetStartAdjustment]]
|Sets the clipping adjustments for the beginning of the link
|-
| width="30%" | [[API Panel.LinkBar.SetEndAdjustment|SetEndAdjustment]]
|Sets the clipping adjustments for the end of the link
|-
| width="30%" | [[API Panel.LinkBar.SetStartGfx|SetStartGfx]]
|Sets the graphic for the start point of the bar
|-
| width="30%" | [[API Panel.LinkBar.SetBarGfx|SetBarGfx]]
|Sets the graphic for the main line of the bar
|-
| width="30%" | [[API Panel.LinkBar.SetEndGfx|SetEndGfx]]
|Sets the graphic for the end point of the bar
|-
| width="30%" | [[API Panel.LinkBar.GetStartPos|GetStartPos]]
|Gets the position the bars start point is located at
|-
| width="30%" | [[API Panel.LinkBar.GetBarPos|GetBarPos]]
|Gets the position the bar is located at
|-
| width="30%" | [[API Panel.LinkBar.GetEndPos|GetEndPos]]
|Gets the position the bars end point is located at
|-
| width="30%" | [[API Panel.LinkBar.Update|Update]]
|Manually refresh the screen the point cloud exists on
|-
| width="30%" | [[API Panel.LinkBar.EnableAuto|EnableAuto]]
|Sets whether Flowcode should automatically draw links for component object property types
|-
! colspan="2" | [[API Panel.Collision|Panel.Collision]]
|-
| width="30%" | [[API Panel.Collision.TestTable|TestTable]]
|Tests whether an object collides with the table top, returns Z distance to move to rest on the table
|-
| width="30%" | [[API Panel.Collision.TestSingle|TestSingle]]
|Tests whether an object collides with a position
|-
| width="30%" | [[API Panel.Collision.GetSingleAxis|GetSingleAxis]]
|Tests whether an object collides with a position
|-
| width="30%" | [[API Panel.Collision.GetSinglePos|GetSinglePos]]
|Returns the position to move Pos to so it does not collide with Test - null if no collide
|-
| width="30%" | [[API Panel.Collision.GetMultiAxis|GetMultiAxis]]
|Tests whether an object collides with a position
|-
| width="30%" | [[API Panel.Collision.GetMultiPos|GetMultiPos]]
|Returns the position to move Pos to so it does not collide with any other object - null if no collide
|-
! colspan="2" | [[API Panel.Graphics|Panel.Graphics]]
|-
| width="30%" | [[API Panel.Graphics.Redraw|Redraw]]
|Sends a redraw request to the given component
|-
| width="30%" | [[API Panel.Graphics.SetColor|SetColor]]
|Sets the draw colour for and subsequent graphics objects
|-
| width="30%" | [[API Panel.Graphics.SetColorRGB|SetColorRGB]]
|Sets the draw colour for and subsequent graphics objects
|-
| width="30%" | [[API Panel.Graphics.SetTextFont|SetTextFont]]
|Sets the text font for subsequent text objects
|-
| width="30%" | [[API Panel.Graphics.SetTextScale|SetTextScale]]
|Sets the text scale for subsequent text objects
|-
| width="30%" | [[API Panel.Graphics.SetLineThickness|SetLineThickness]]
|Sets the thinkness when drawing lines and points
|-
| width="30%" | [[API Panel.Graphics.DrawCreate|DrawCreate]]
|Creates a drawing area on a shape
|-
| width="30%" | [[API Panel.Graphics.DrawBegin|DrawBegin]]
|Begins drawing on a given shape
|-
| width="30%" | [[API Panel.Graphics.DrawEnd|DrawEnd]]
|Ends drawing started with DrawBegin()
|-
| width="30%" | [[API Panel.Graphics.DrawDelete|DrawDelete]]
|Deletes a drawing area for a shape
|-
| width="30%" | [[API Panel.Graphics.DrawText|DrawText]]
|Draws a line of text texture
|-
| width="30%" | [[API Panel.Graphics.DrawPoint|DrawPoint]]
|Draws a point on a texture
|-
| width="30%" | [[API Panel.Graphics.DrawLine|DrawLine]]
|Draws a line on a texture
|-
| width="30%" | [[API Panel.Graphics.DrawLineA|DrawLineA]]
|Draws a smooth line on a texture
|-
| width="30%" | [[API Panel.Graphics.DrawRect|DrawRect]]
|Draws a rectangle on a texture
|-
| width="30%" | [[API Panel.Graphics.DrawCircle|DrawCircle]]
|Draws a circle on a texture
|-
! colspan="2" | [[API Panel.Graphics.Shape|Panel.Graphics.Shape]]
|-
| width="30%" | [[API Panel.Graphics.Shape.Image|Image]]
|Sets the image to draw on the last drawn shape
|-
! colspan="2" | [[API Mouse|Mouse]]
|-
| width="30%" | [[API Mouse.GetButtons|GetButtons]]
|Gets the button state from the mouse: 4 for left, 1 for right
|-
| width="30%" | [[API Mouse.GetFocus|GetFocus]]
|Gets the handle of the component under the mouse
|-
| width="30%" | [[API Mouse.GetPosition|GetPosition]]
|Gets the position of the mouse, intersecting with a component or the viewing plane
|-
| width="30%" | [[API Mouse.GetPosition2D|GetPosition2D]]
|Gets the X/Y position of the mouse in screen coords
|-
| width="30%" | [[API Mouse.GetClickSide|GetClickSide]]
|Gets the side of the component clicked on, 0 to 5
|-
! colspan="2" | [[API FCD|FCD]]
|-
| width="30%" | [[API FCD.GetItemValue|GetItemValue]]
|Gets a paths item value from the FCD document
|-
| width="30%" | [[API FCD.GetItemHandle|GetItemHandle]]
|Gets a FCD items handle, suitable for traversal with the Tree API
|-
| width="30%" | [[API FCD.GetPathHandle|GetPathHandle]]
|Gets a FCD paths handle, suitable for traversal with the Tree API
|-
! colspan="2" | [[API Sound|Sound]]
|-
| width="30%" | [[API Sound.Play|Play]]
|Plays a formatted file sound, returns true if the sound played OK
|-
| width="30%" | [[API Sound.LoadWav|LoadWav]]
|Loads a wave file into memory, providing the values needed to play it
|-
| width="30%" | [[API Sound.Create|Create]]
|Creates a sound object that data can be played through
|-
| width="30%" | [[API Sound.SetVolume|SetVolume]]
|Sets the volume of playbacks for this sound
|-
| width="30%" | [[API Sound.GetVolume|GetVolume]]
|Gets the volume of playbacks for this sound in the range 0 to 1
|-
| width="30%" | [[API Sound.GetBits|GetBits]]
|Gets the number of bits per sample for the sound
|-
| width="30%" | [[API Sound.GetRate|GetRate]]
|Gets the current sample rate for the sound
|-
| width="30%" | [[API Sound.SetRate|SetRate]]
|Sets the current sample rate for the sound - this will stop the playing sound
|-
| width="30%" | [[API Sound.Queue|Queue]]
|Queues a sound for playing
|-
| width="30%" | [[API Sound.QueueEx|QueueEx]]
|Queues a sound for playing, with the format provided
|-
| width="30%" | [[API Sound.Flush|Flush]]
|Stops all playing and queued sounds
|-
| width="30%" | [[API Sound.GetPending|GetPending]]
|Gets the number of sample blocks queued or playing for the sound
|-
! colspan="2" | [[API Scope|Scope]]
|-
| width="30%" | [[API Scope.AddGroup|AddGroup]]
|Adds a group to the scope to which streams may be added
|-
| width="30%" | [[API Scope.AddStream|AddStream]]
|Adds a stream to the given group suitable for inputs and operations
|-
| width="30%" | [[API Scope.AddBuffer|AddBuffer]]
|Adds a fixed-view stream to the given group suitable for inputs and operations
|-
| width="30%" | [[API Scope.Rename|Rename]]
|Renames the given scope group, stream or buffer
|-
| width="30%" | [[API Scope.AddPort|AddPort]]
|Adds an input to the stream from a port
|-
| width="30%" | [[API Scope.AddAnalog|AddAnalog]]
|Adds an input to the stream from an analog channel
|-
| width="30%" | [[API Scope.AddCustom|AddCustom]]
|Adds an input to the stream from a custom injection
|-
| width="30%" | [[API Scope.AddOp|AddOp]]
|Adds an operation to act on the inputs of the stream
|-
| width="30%" | [[API Scope.ClearOps|ClearOps]]
|Clears all inputs and operations from the given stream
|-
| width="30%" | [[API Scope.SetBuffer|SetBuffer]]
|Sets the contents of a snapshot stream
|-
| width="30%" | [[API Scope.SetCustom|SetCustom]]
|Sets one of 32 custom analog values for the group
|-
| width="30%" | [[API Scope.GetSnapshot|GetSnapshot]]
|Gets a block of the output stream with each input sample operated on, returns number of samples read
|-
| width="30%" | [[API Scope.FindOutput|FindOutput]]
|Searches back through the output history for a value, returns offset of found sample from TimeUS, 0 if not found
|-
| width="30%" | [[API Scope.FindBaud|FindBaud]]
|Attempts to calculate the baud given a series of transitions for the stream, returns calculated baud
|-
| width="30%" | [[API Scope.AddOverlay|AddOverlay]]
|Adds a packet overlay to the stream at a given offset from the current time
|-
| width="30%" | [[API Scope.AddOverlays|AddOverlays]]
|Adds overlay packets to the stream by decoding the stream contents
|-
| width="30%" | [[API Scope.ClearOverlays|ClearOverlays]]
|Clears existing overlay packets from the stream
|-
| width="30%" | [[API Scope.ClearAllOverlays|ClearAllOverlays]]
|Clears all existing overlay packets from the stream
|-
! colspan="2" | [[API Console|Console]]
|-
| width="30%" | [[API Console.AddText|AddText]]
|Adds a window to the list of consoles available
|-
| width="30%" | [[API Console.AddMemory|AddMemory]]
|Adds a window to the list of consoles available
|-
| width="30%" | [[API Console.GetDefault|GetDefault]]
|Gets the default (read-only) console window
|-
| width="30%" | [[API Console.Rename|Rename]]
|Renames the given console
|-
| width="30%" | [[API Console.SetMemMode|SetMemMode]]
|Sets whether to show address and bytes for the console
|-
| width="30%" | [[API Console.SetInputRGB|SetInputRGB]]
|Sets the colour of text inserted by the user from now on
|-
| width="30%" | [[API Console.SetOutputRGB|SetOutputRGB]]
|Sets the colour of text inserted by the component from now on
|-
| width="30%" | [[API Console.WriteText|WriteText]]
|Adds a block of text to the console window
|-
| width="30%" | [[API Console.GetLineText|GetLineText]]
|Reads a line of text from the given console, pass -1 for final line
|-
| width="30%" | [[API Console.SetLineText|SetLineText]]
|Writes a line of text from the given console, pass -1 for final line
|-
| width="30%" | [[API Console.GetLineBytes|GetLineBytes]]
|Reads a line of bytes from the given console extending the array if needed
|-
| width="30%" | [[API Console.SetLineBytes|SetLineBytes]]
|Writes a line of bytes from the given console, pass -1 for final line
|-
| width="30%" | [[API Console.CountLines|CountLines]]
|Counts the number of lines in the console
|-
| width="30%" | [[API Console.ClearText|ClearText]]
|Clears all the text in the console
|-
! colspan="2" | [[API Connection|Connection]]
|-
| width="30%" | [[API Connection.GetPort|GetPort]]
|Gets a ports value from its index
|-
| width="30%" | [[API Connection.SetPort|SetPort]]
|Sets a ports value from its index
|-
| width="30%" | [[API Connection.GetAn|GetAn]]
|Gets an analog value from its channel index
|-
| width="30%" | [[API Connection.SetAn|SetAn]]
|Sets an analog value from its index, range 0->1
|-
! colspan="2" | [[API Expand|Expand]]
|-
| width="30%" | [[API Expand.PathName|PathName]]
|Expands a string using the built-in pathname expansion variables
|-
| width="30%" | [[API Expand.MacroName|MacroName]]
|Expands a string to the name of a macro used in the generated code
|-
| width="30%" | [[API Expand.VarName|VarName]]
|Expands a string to the name of a global variable used in the generated code
|-
| width="30%" | [[API Expand.Property|Property]]
|Expands a string to the name of a property used in the generated code
|-
| width="30%" | [[API Expand.MacroHead|MacroHead]]
|Expands a macro name to the code generated for the header of that macro
|-
| width="30%" | [[API Expand.MacroBody|MacroBody]]
|Expands a macro name to the code generated for the body of that macro
|-
| width="30%" | [[API Expand.MacroTail|MacroTail]]
|Expands a macro name to the code generated for the tail of that macro
|-
! colspan="2" | [[API Tree|Tree]]
|-
| width="30%" | [[API Tree.GetValue|GetValue]]
|Gets the value of the given object, if available
|-
| width="30%" | [[API Tree.GetName|GetName]]
|Gets the name of the given object
|-
| width="30%" | [[API Tree.GetPath|GetPath]]
|Gets the full '.' separated name of the given object
|-
| width="30%" | [[API Tree.GetSubValue|GetSubValue]]
|Gets the value of a named sub-item of the given object, if available
|-
| width="30%" | [[API Tree.Traverse|Traverse]]
|Updates the object to step depth-first through the tree
|-
| width="30%" | [[API Tree.StepNext|StepNext]]
|Updates the object to point to the next (younger) sibling
|-
| width="30%" | [[API Tree.StepNamedNext|StepNamedNext]]
|Updates the object to point to the next (younger) sibling matching the name
|-
| width="30%" | [[API Tree.StepNamedIndex|StepNamedIndex]]
|Updates the object to point to the Nth next (younger) sibling matching the name
|-
| width="30%" | [[API Tree.StepLast|StepLast]]
|Updates the object to point to the last (elder) sibling
|-
| width="30%" | [[API Tree.StepParent|StepParent]]
|Updates the object to point to its parent object
|-
| width="30%" | [[API Tree.StepRoot|StepRoot]]
|Updates the object to point to the root of the tree
|-
| width="30%" | [[API Tree.StepChildHead|StepChildHead]]
|Updates the object to point to the head (eldest) child
|-
| width="30%" | [[API Tree.StepChildTail|StepChildTail]]
|Updates the object to point to the tail (youngest) child
|-
| width="30%" | [[API Tree.StepChildPath|StepChildPath]]
|Updates the object to point to the '.' separated named child path
|-
| width="30%" | [[API Tree.CountChildren|CountChildren]]
|Returns the number of immediate children present for the object
|-
| width="30%" | [[API Tree.CheckChildren|CheckChildren]]
|Returns true if the object has children, else false
|-
| width="30%" | [[API Tree.CountNamedChildren|CountNamedChildren]]
|Returns the number of immediate children present for the object
|-
| width="30%" | [[API Tree.CheckParent|CheckParent]]
|Returns true if the object has a parent, else false if it is the root
|-
| width="30%" | [[API Tree.StepSubHead|StepSubHead]]
|Updates the object to point to the head (eldest) attribute, if any
|-
| width="30%" | [[API Tree.StepSubTail|StepSubTail]]
|Updates the object to point to the tail (youngest) attribute, if any
|-
| width="30%" | [[API Tree.StepSubName|StepSubName]]
|Updates the object to point to the named attribute, if any
|-
| width="30%" | [[API Tree.GetCopy|GetCopy]]
|Creates a copy of the handle and returns the copy
|-
! colspan="2" | [[API File|File]]
|-
| width="30%" | [[API File.AbsPath|AbsPath]]
|Gets an absolute path from a relative filename
|-
| width="30%" | [[API File.RelPath|RelPath]]
|Gets an relative path from an absolute filename
|-
| width="30%" | [[API File.CreateDir|CreateDir]]
|Creates a directory structure
|-
| width="30%" | [[API File.GetType|GetType]]
|Finds the type of a file: 0=Unknown, 1=File, 2=Dir, 4=Disk
|-
| width="30%" | [[API File.GetSize|GetSize]]
|Gets the number of bytes in the file, by handle or name
|-
| width="30%" | [[API File.Delete|Delete]]
|Deletes the file or directory structure
|-
| width="30%" | [[API File.Create|Create]]
|Creates the new file as a standard stream
|-
| width="30%" | [[API File.Open|Open]]
|Opens the existing file as a standard stream
|-
| width="30%" | [[API File.ReadArray|ReadArray]]
|Reads an array from the file, returns elements read
|-
| width="30%" | [[API File.WriteArray|WriteArray]]
|Writes an array to the file
|-
| width="30%" | [[API File.SetPos|SetPos]]
|Sets the position of the next read or write in the file
|-
| width="30%" | [[API File.GetPos|GetPos]]
|Gets the position of the next read or write in the file
|-
| width="30%" | [[API File.Flush|Flush]]
|Writes all unwritten data to the file in one block
|-
! colspan="2" | [[API File.Buffer|File.Buffer]]
|-
| width="30%" | [[API File.Buffer.Open|Open]]
|Opens the existing file as a circular buffer
|-
| width="30%" | [[API File.Buffer.Create|Create]]
|Creates the new file as a circular buffer
|-
| width="30%" | [[API File.Buffer.ReadByte|ReadByte]]
|Reads a single byte from the input stream, -1 if empty
|-
| width="30%" | [[API File.Buffer.WriteByte|WriteByte]]
|Writes a single byte to the input stream
|-
| width="30%" | [[API File.Buffer.ReadArray|ReadArray]]
|Reads an array from the input stream, returns elements read
|-
| width="30%" | [[API File.Buffer.WriteArray|WriteArray]]
|Writes an array to the input stream
|-
! colspan="2" | [[API File.NVM|File.NVM]]
|-
| width="30%" | [[API File.NVM.Open|Open]]
|Opens the existing file as a block of non-volatile memory
|-
| width="30%" | [[API File.NVM.Create|Create]]
|Creates the new file as a block of non-volatile memory
|-
| width="30%" | [[API File.NVM.ReadByte|ReadByte]]
|Reads a single byte from the NVM, -1 if empty
|-
| width="30%" | [[API File.NVM.WriteByte|WriteByte]]
|Writes a single byte to the NVM multiple times
|-
| width="30%" | [[API File.NVM.ReadArray|ReadArray]]
|Reads an array from the NVM, returns elements read
|-
| width="30%" | [[API File.NVM.WriteArray|WriteArray]]
|Writes an array to the NVM
|-
! colspan="2" | [[API Time|Time]]
|-
| width="30%" | [[API Time.GetMillisecs|GetMillisecs]]
|Returns the value of a monotonic non-decrementing millisecond counter
|-
| width="30%" | [[API Time.GetUTC|GetUTC]]
|Returns the current UTC Modified Julian Date value
|-
| width="30%" | [[API Time.GetLocal|GetLocal]]
|Returns the current local time as a Modified Julian Date value
|-
| width="30%" | [[API Time.AddMJD|AddMJD]]
|Increments or decrements a Modified Julian Date and millisecond value
|-
| width="30%" | [[API Time.MJDToDate|MJDToDate]]
|Converts a Modified Julian Date into a Gregorian calendar date
|-
| width="30%" | [[API Time.DateToMJD|DateToMJD]]
|Converts a Gregorian calendar date into a Modified Julian Date
|-
| width="30%" | [[API Time.MJDToSeconds|MJDToSeconds]]
|Converts a Modified Julian Date into a number of seconds since a specified epoch
|-
| width="30%" | [[API Time.SecondsToMJD|SecondsToMJD]]
|Returns the Modified Julian Date given by the number of seconds since a specified epoch
|-
| width="30%" | [[API Time.MJDToWeekday|MJDToWeekday]]
|Gets the day of the week that the MJD represents
|-
| width="30%" | [[API Time.GetLeapYear|GetLeapYear]]
|Returns true if the given year is a leap year, else false
|-
| width="30%" | [[API Time.GetMonthDays|GetMonthDays]]
|Returns the number of days in the given month
|-
! colspan="2" | [[API Language|Language]]
|-
| width="30%" | [[API Language.Translate|Translate]]
|Takes English text and optional hint and converts to the current language
|-
! colspan="2" | [[API System|System]]
|-
| width="30%" | [[API System.Notify|Notify]]
|Sends a System.User message to the targeted component
|-
| width="30%" | [[API System.Forward|Forward]]
|Sends the currently processing message to the target
|-
| width="30%" | [[API System.ShowHandle|ShowHandle]]
|Given a handle to an object with viewable presence, shows that object on screen
|-
| width="30%" | [[API System.CreateHandle|CreateHandle]]
|Creates a general-purpose garbage collected handle for resource management
|-
| width="30%" | [[API System.SetHandleWord|SetHandleWord]]
|Sets a general purpose word in the handle for use by its owner
|-
| width="30%" | [[API System.GetHandleWord|GetHandleWord]]
|Gets a general-purpose word set by the owner of a custom handle
|-
| width="30%" | [[API System.DeleteHandle|DeleteHandle]]
|Deletes any handle created by the component
|-
| width="30%" | [[API System.GetSender|GetSender]]
|Gets the handle of the component that posted this event - 0 for system
|-
| width="30%" | [[API System.TimerStart|TimerStart]]
|Calls the Component.Timer event with Ident as an argument after Millisecs time
|-
| width="30%" | [[API System.TimerStop|TimerStop]]
|Kills any timers with the given ident for this component
|-
| width="30%" | [[API System.WDTEnable|WDTEnable]]
|Enables or disables the software watchdog during long operations
|-
| width="30%" | [[API System.ClaimEvent|ClaimEvent]]
|Claims an event message by name, returns true if claimed
|-
| width="30%" | [[API System.ReleaseEvent|ReleaseEvent]]
|Releases a previously claimed an event message by name, returns true if released
|-
| width="30%" | [[API System.EnableEvent|EnableEvent]]
|Allows an event to be fired or removes the ability for an event to fire - this may be nested
|-
| width="30%" | [[API System.ClaimMouse|ClaimMouse]]
|Claims mouse clicks for the target object
|-
| width="30%" | [[API System.ReleaseMouse|ReleaseMouse]]
|Releases mouse clicks for the target object
|-
| width="30%" | [[API System.RedirectMacros|RedirectMacros]]
|Allows calls to one of your children to be redirected to another component
|-
! colspan="2" | [[API Debug|Debug]]
|-
| width="30%" | [[API Debug.Print|Print]]
|Prints out the string or value on a line in the debug window
|-
| width="30%" | [[API Debug.PrintLn|PrintLn]]
|Prints out the string or value with a new-line in the debug window
|}

Revision as of 14:57, 23 July 2026

Flowcode provides an application programming interface to help writing simulation and PC-side programs.

This API is a list of macros built in to Flowcode with each group, or class, of macros dealing with a specific area of the system.

Use of this API is limited to simulation only - when downloaded to the chip these calls will be omitted, so if need be they can be interleaved in downloadable code.

A reference to the classes and macros available can be found here.