Simulation Functionality
From Flowcode Help
Jump to navigationJump to searchContents
Built in functions
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 |
GetPanel | Returns the id of the panel hosting the 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 | |
GetRoot | Gets the root component handle | |
GetTopParent | Gets the top-level owner of the component | |
GetParent | Gets the owner of the component | |
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 |
GetPanelName | Returns the name of the panel from the id | |
GetPanelBkColour | Returns the main background colour of the panel | |
Get2dPanelCount | Gets the number of 2d panels | |
Create2dPanel | Creates a new 2d panel | |
AddNewComponent | Adds a new component to a panel |
Position | ||
GetWorldPosition | Returns the positions coordinates in (X,Y,Z) array | |
GetWorldSize | Returns the component size in (X,Y,Z) array | |
SetWorldPosition | Moves the object to the given coordinates in World coordinates | |
SetWorldSize | Sets the objects size to a value | |
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 | |
GetLineNodes | Returns the position of a line's nodes as a comma-separated list | |
SetLineNodes | Sets the nodes of a line | |
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 | |
Math | Coordinate maths functions | |
Panel2D | 2D Panel functions | |
Camera | Camera positioning for 3D panel |
PCloud | ||
Create | Creates a new point cloud tied to a position handle | |
SetVisible | Sets whether the point cloud is displayed or not | |
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 |
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 bar exists on | |
EnableAuto | Sets whether Flowcode should automatically draw links for component object property types |
TextLabel | ||
Create | Creates a new text label that always faces the camera | |
SetVisible | Sets whether the label is displayed or not | |
SetPos | Sets the position for the point to draw the text at | |
SetOffset | Sets the offset from the SetPos() position for the label | |
SetText | Sets the text for the label | |
SetScale | Sets the multipliers for the width and height of the label | |
SetColors | Sets the foreground and background colours for the label | |
SetViewMode | Sets whether to draw at a fixed size or to scale based on distance from the camera | |
GetPos | Gets the position the label is located at | |
Update | Manually refresh the screen the label exists on |
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 |
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 | |
Clear | Clear texture to the given component | |
Shape | Routines to change the last drawn shape |
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 | |
SimClick | Simulates a click on an object | |
SimDrag | Simulates a click-drag on an object | |
SimRelease | Simulates a click-release on an object |
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 | |
SetItemValue | Override item value from the FCD document from path | |
ResetItemValue | Reset paths item value from the FCD document |
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 |
AddGroup | Adds a group to the scope to which streams may be added | |
ShowGroup | Sets the visibility of the given group | |
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 | |
SetYAxisLabels | Sets the labels for the Y-axis of the given stream | |
SetLineColor | Sets the group, stream or buffers line colour | |
GetLineColor | Gets the streams line colour | |
SetBackColor | Sets the groups background colour | |
GetBackColor | Gets the stream groups background colour | |
SetDecodable | Sets whether a stream can be decoded via the components event - defaults to 'true' | |
GetDecodable | Gets whether a stream can be decoded via the components event - defaults to 'true' | |
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 | |
FindPeriod | Attempts to calculate the wave period given a series of transitions for the stream, returns calculated period | |
SetPacketFmt | Sets the graphical format of the packets added with AddPacket and Add...Packets | |
GetPacketFmt | Returns the graphical format of the packets added with AddPacket and Add...Packets | |
AddPacket | Adds an overlay packet to the stream at a given offset from the current time | |
AddStepPackets | Adds overlay packets to the stream by decoding the stream contents with a fixed period rate | |
AddSyncPackets | Adds overlay packets to the stream by decoding the stream contents with a variable period rate | |
ClearPackets | Clears existing overlay packets from the stream | |
ClearAllPackets | Clears all existing overlay packets from the stream | |
TicksToSecs | Converts a duration in ticks into a time in seconds | |
SecsToTicks | Converts a time in seconds into a duration in ticks |
FloatToStorageULong | Converts a float to an array containing 4 bytes | |
StorageULongToFloat | Returns a float value from an unsigned long representation (used to store or transfer it) | |
GetFrequencyArray | Calculates the frequency from an array of data. | |
GetAmplitudeArray | Calculates the amplitude from an array of data. |
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 | |
GetConsole | Gets a console window | |
GetName | Returns the name of a console | |
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 |
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 | |
DecodePort | Gets a ports details from its name or index |
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 |
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 |
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 |
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 |
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 |
SimpleMsgBox | Displays a simple 'Ok' message box | |
Win32MsgBox | Invokes the Win32 API MessageBox function | |
YesNoMsgBox | Displays a simple 'Yes/No' message box | |
YesNoCancelMsgBox | Displays a simple 'Yes/No/Cancel' message box (0 == Cancel, 1 == No, 2 == Yes) | |
InputMsgBox | Displays a message box that allows the user to input text. Returns true if 'Ok' clicked, false otherwise |
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 |
Translate | Takes English text and optional hint and converts to the current language |
Notify | Sends a System.User message to the targeted component | |
Forward | Sends the currently processing message to the target | |
MacroExists | Returns true if the macro exists | |
CallMacro | Calls a macro | |
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 | |
StartSim | Start the simulation engine | |
StopSim | Stop the simulation engine | |
SetSimSpeed | Sets the speed the simulation engine | |
SetClipboardData | Sets the clipboard with text data | |
ReadClipboardData | Reads text data from the clipboard | |
GetHasFocus | Checks to see if a Flowcode window has the focus | |
ShellExecute | Launches an external file or program on this computer | |
WriteRegistryInt | Writes an integer value to the registry | |
WriteRegistryString | Writes a string value to the registry | |
ReadRegistryInt | Reads an integer value from the registry | |
ReadRegistryString | Reads a string value from the registry |
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 | |
TestFunction | Temporary debug function |
Events
Preprocess | Broadcast to all components immediately before compilation is started | |
AddProperty | Sent to a component to allow dynamic amendment of global property declarations | |
AddConst | Sent to a component to allow dynamic amendment of global variable declarations | |
AddVarSize | Sent to a component to allow dynamic amendment of global array-size declarations | |
AddVar | Sent to a component to allow dynamic amendment of global constant declarations | |
AddHeader | Sent to a component to allow dynamic amendment of header code | |
AddInterrupts | Sent to a component to allow dynamic amendment of the interrupts for a component | |
AddInterrupt | Sent to a component to allow dynamic amendment of a single interrupts code | |
Start | Broadcast to all components that compilation is starting | |
Stop | Broadcast to all components that compilation has stopped | |
GetVarSize | Sent to a component to amend the size of the expected array | |
HtmlBodyInfo | Sent to a component to retrieve tags to be placed in the html body | |
HtmlScriptHeader | Sent to a component to retrieve script code to be placed in the html header section |
PropertyEx | Sent when a property has been changed by the User (specific property and value identified) | |
Property | Sent when a property has been changed by the User | |
ProjectClosedown | Sent to the component when the project is closing | |
Added | Broadcast to all existing components once a new component has been added | |
Adding | Broadcast to all existing components when a new component is about to be added | |
Resize | Sent to the mouse target when the user has altered the position of a component child | |
Removed | Broadcast to all remaining components after a component has been removed | |
Removing | Broadcast to all existing components when a component is about to be removed | |
Renamed | Sent to the component when the component is renamed | |
Deleted | Closedown routine for the component | |
Deleting | Send to a component when it is being deleted | |
Initialise | Initialisation routine for the component once the component is linked to its parent | |
Initialising | Initialisation routine before the component is linked to its parent |
AddLine | Post to the owning component when a line is inserted by the user | |
TextChanged | Post when the console text is changed by the user in some way | |
MemChanged | Post when the console memory is changed by the user in some way |
PinPopulate | Sent when auto-populate of digital connections is requested | |
PinChange | Sent during simulation if a connected port pin changes | |
AnPopulate | Sent when auto-populate of analog connections is requested | |
AnChange | Sent during simulation if a connected ADC channel changes | |
ChipChange | Sent when the target device has changed | |
Unconnected | Sent when the component is compiled with unconnected pins | |
FCDChange | Sent when some settings of the target device have changed |
Pause | Broadcast to all components that simulation has paused | |
Resume | Broadcast to all components that simulation has resumed | |
Start | Broadcast to all components that simulation is starting | |
Stop | Broadcast to all components that simulation has stopped |
CleanHandle | Called when a custom handle is deleted to allow cleanup of resources | |
Timer | Called back on the panel command System.TimerStart | |
User | Called back on the panel command System.Notify | |
LoadComplete | Broadcast after a project has finished loading |
Complete | Sent when a sound queued by the component has finished playing |
ResyncPacket | Sent when Packet_ResyncEv is specified in scope decoding | |
Decode | Sent when a block of the stream is to be decoded into packets | |
FmtPacket | Sent when a %e is read in a format string when decoding a packet | |
Overlay | Sent when the mouse hovers over a scope stream |
GraphicPoll | Called when a tooltip graphic is updating with the draw image already pushed | |
GetText | Called when a tooltip text string can be displayed | |
GetGraphic | Called when a tooltip graphic can be displayed with the draw image already pushed |
Animated | Notification than an animation has finished | |
Background | Updates the background container of the 2d panel | |
Redraw | Reconstructs and redraws the target component |
ButtonName | Sent to give a meaningful name to a button on a simulated mouse-click | |
KeyMapDown | Post when a mapped key is pressed for the component | |
KeyMapUp | Post when a mapped key is released for the component | |
MappingKeys | Sent to find out how many keys it is possible to map to the component during simulation | |
MappingName | Sent to give a meaningful name to a custom key-map event for a component |