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