Difference between revisions of "Main Page"

From Flowcode Help
Jump to navigationJump to search
 
(12 intermediate revisions by 3 users not shown)
Line 30: Line 30:
 
__NOTOC__
 
__NOTOC__
  
 +
''<span style="color:red;">Flowcode v9 users should refer to the [[https://www.flowcode.co.uk/wikiv9/index.php?title=Main_Page Flowcode 9 wiki]]. </span>''
 
[[File:fc-v9-mainlogo-01.png|center]]
 
[[File:fc-v9-mainlogo-01.png|center]]
  
  
  
''<span style="color:red;">Flowcode v9 users should refer to the [[https://www.flowcode.co.uk/wikiv9/index.php?title=Main_Page Flowcode 9 wiki]]. </span>''
+
[[File:Fc10 what is flowcode1.jpg]] &ensp;&ensp;  [[File:Web Barometer Web App.jpg]]
<br><br><br><br><br><br><br><br><br>
 
==About Flowcode==
 
 
 
Flowcode is a graphical programming Integrated Development Environment (IDE) that allows you to develop highly functional electrical, electronic and electromechanical systems for microcontroller based systems and for Windows PCs and tablets.
 
 
 
Flowcode was first released in 2001 and had the tagline "Allows those with no programming skills to design complex electronic systems", which largely holds true today.  It allowed a user to create flowchart-based programs that could be compiled and programmed into embedded 8-bit PICmicro devices such as the popular PIC16F84 and PIC16F877 without the need to understand C or Assembly languages.  A handful of component libraries for general I/O, alphanumeric LCDs, etc., were included to help speed-up development.
 
 
 
Another useful feature of Flowcode was on-screen simulation of the user’s program.  This allowed a user to step through their program on-screen as a debugging aid prior to it being downloaded onto the microcontroller.
 
However, Flowcode has changed considerably since then, and that is not the only change. 
 
 
 
Microcontrollers have become much more advanced and now surpass the power and capability of a typical PC from 20 years ago.  In addition, there has been a rise in the use of single-board computers like the Raspberry Pi.  Flowcode now allows users to develop code to run on a lot of these newer embedded devices and supports a wide range of 8-bit, 16-bit and 32-bit devices such as ARM, Arduino, and Raspberry Pi.
 
 
 
Another big change has been the rise of the Internet and IoT (Internet of Things), meaning modern embedded systems can be controlled from and exchange data with a wide range of external sources.  The distinction between an embedded device and a ‘traditional’ computer is becoming increasingly blurred.
 
 
 
To better support these changes and new devices, Flowcode has greatly expanded its component libraries and now supports a wide range of communication protocols, displays, sensors, internal and external peripherals, etc.
 
 
 
Flowcode can also target non-embedded devices.  In 2018 we added “SCADA” mode to Flowcode (since renamed App Developer), which allows the creation of Flowcode-generated apps that run on a Windows PC.  And in 2023 we have extended App Developer so that apps can also be created that run in a web browser – we call this Web Developer.
 
[[File:About Flowcode1.png|center]]
 
 
 
Starting with v10.1, Flowcode allows the creation of 3 different project types:
 
* Embedded projects
 
* PC Developer projects
 
* Web Developer projects
 
 
 
Flowcode Embedded allows you to easily create highly functional programs for popular microcontrollers.  Flowcode App Developer (which comprises PC Developer and Web Developer) allows you to create applications for PCs, tablets, mobile phones, etc.
 
 
 
'''Typical development process when using Flowcode'''
 
 
 
Users will begin by writing code and creating their project GUI within Flowcode.  Flowcode programs consist of one or more ‘macros’, which can be developed using several different programming systems.  Flowcharts are most used, but other paradigms exist (blocks, code, pseudocode, and state diagrams).  Each Flowcode macro represents an executable function within the user’s project.
 
 
 
During this development process, users can run a simulation to debug their project within Flowcode and ensure it is working as expected.  The user can run their project to execute sections of code, step through their code and into other macros, add breakpoints to pause code execution, etc.  During this simulation, variables within the project can be inspected and their values changed.  Some components in the panels will be interactive and will change during program simulation and allow the user to interact with their running program.
 
 
 
Once the project has been developed and simulated, it can be deployed to the target device.  This will be different for each Flowcode project type as described above.  For PC and Web App Developer projects, the deployed app will behave almost exactly like the simulation.  However, Embedded projects will not simulate all features of the embedded system and so additional debugging will need to take place when the project is running on the target device (e.g., using Flowcode’s Ghost features).
 
 
 
[[File:About Flowcode2.png|center]]
 
 
 
Although describes linearly, this will typically be an interactive process.  Code and GUI will be developed and then simulated, which will lead to additional code development.  Even once the project has been deployed, bugs or unexpected behaviour could be identified leading to more code development.
 
 
 
'''Flowcode deployment processes'''
 
 
 
Deployment describes the process of finalising your Flowcode project and creating the necessary files for it to run on its intended target device.  Once deployed, the project will be running independently of Flowcode and can be shared freely with customers, etc.
 
 
 
The deployed app is generally not editable.  If subsequent changes are required, the originating project must be loaded into Flowcode and edited there.  Once edited, it will need to be redeployed.
 
 
 
For an Embedded project, deployment means creating and downloading an executable program file to the embedded target device.  Typically, the Flowcode program code (user macros, component macros and settings, etc.) is first converted to a C code file which is then compiled using a 3rd-party toolchain.  This process usually produces a .HEX or .BIN file which can be loaded into the target using dedicated programming software.
 
 
 
PC Developer project deployment means converting the Flowcode project to a .MSCADA file which contains information about the component panels, components, and user macros.  This file can be loaded onto other PCs and run using a freely distributable Flowcode Runtime engine.
 
 
 
Web Developer projects are converted to a .HTML file which graphically represents the components on the Flowcode panel and the functionality of the code within user and component macros.  This file can be copied to any device that has a suitable web browser and run locally from there.  Alternatively, the file can be uploaded to a website and accessed remotely from a web browser.
 
 
 
{| class="wikitable"
 
 
 
|-
 
! Project type !! Target !! Deployment process
 
|-
 
| Embedded || Embedded device || 1. Program is converted to C code.
 
2. C code is compiled (e.g., to a .HEX file).
 
 
 
3. HEX file is downloaded to the target.
 
 
 
|-
 
| PC Developer || Windows PC || 1. Program is saved as a .MSCADA file.
 
2. This file can be run on any Windows PC
 
 
 
using the stand-alone Flowcode runtime.
 
 
 
|-
 
| Web Developer || Web browser || 1. Program is saved as a .HTML file.
 
2. This file can be opened in a browser on a PC, mobile phone, or other device.
 
 
 
3. The .html file itself can be local to the browser or can be uploaded to a website.
 
 
 
|}
 
 
 
'''Interacting with the outside world'''
 
 
 
Almost every Flowcode project will be written to interact with ‘things’ that are external to the program or device – e.g., users, data, and other hardware – and this is true for all Flowcode project types – Embedded, PC Developer and Web Developer.
 
 
 
These interactions can vary greatly and consist of many different types, including:
 
* User input – switches, buttons, values, text, etc.
 
* User output – indicators, text, images, etc.
 
* Information from sensors – digital and/or analogue
 
* Output to actuators – motors, latches, etc.
 
* Stored datasets – local to the device/program or remote (e.g., from a website)
 
* Communication protocols and APIs
 
* …etc…
 
 
 
[[File:About Flowcode3.png|center]]
 
 
 
The strategy and techniques used in these interactions is also varied, although they are largely consistent across the different Flowcode project types.  This is especially true when considering more complicated interactions such as APIs, communication protocols and interacting with external datasets.
 
  
Another thing to consider is that a Flowcode project can interact with other Flowcode projects.  This is true for all Flowcode project types, and the other project does not necessarily need to be the same type.  For example, a PC Developer project could be developed to communicate with a hardware device running a Flowcode Embedded project.
+
<br><br><br>
 +
==[[About_Flowcode|About Flowcode]]==
  
Embedded projects are heavily dependent on the target device itself as they may not have the required communication protocols or data processing capability.  They will also be reliant on external hardware for the most basic of interactions – switches for user input, sensor inputs, an external display for output, etc.
+
Flowcode is a graphical programming Integrated Development Environment (IDE) that allows you to develop highly functional electrical,<br>
 +
electronic and electromechanical systems for microcontroller based systems and for Windows PCs and tablets.
  
Embedded devices will often be directly connected to simple external hardware and communicate using chip-level communications protocols (e.g., SPI).  Flowcode often handles these protocols within components for the hardware itself.
+
==[[Flowcode Embedded]]==
On the other hand, PC and Web App Developer projects require no external hardware for user I/O.  Instead, components places on Flowcode panels create a GUI for the program to interact with the user.  These components should be familiar to all users.  Inputs consist of switches, buttons, combo boxes, sliders, text input, etc. and outputs are text fields, message prompts, on-screen images, charts, etc.
+
Flowcode Embedded allows you to easily create highly functional programs for popular microcontrollers.
  
 
==[[App Developer|Flowcode App Developer]]==  
 
==[[App Developer|Flowcode App Developer]]==  
[[File:Web Barometer Web App.jpg|right]]
+
Flowcode App Developer allows you to create great Human Machine Interfaces for PCs, tablets and mobile phones using low cost<br>
allows you to create great Human Machine Interfaces for PCs, tablets and mobile phones using low cost input output boards - locally (USB/Buetooth) or remotely (Wi-Fi, LAN, Internet) using Windows or web browsers.
+
input output boards - locally (USB/Buetooth) or remotely (Wi-Fi, LAN, Internet) using Windows or web browsers.
  
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
 
==[[Flowcode Help Overview|Using Flowcode]]==
 
==[[Flowcode Help Overview|Using Flowcode]]==
 
+
Detailed glossary style overview of the aspects of the Flowcode environment broken down into relevant sections to aid in finding the knowledge<br>you require to use Flowcode effectively.
Detailed glossary style overview of the aspects of the Flowcode environment broken down into relevant sections to aid in finding the knowledge you require to use Flowcode effectively.
 
  
 
==[[Exercises|Examples and Tutorials]]==
 
==[[Exercises|Examples and Tutorials]]==
This page contains structured exercises used throughout Flowcode Help section, and further exercises which are not featured in the Flowcode Help structure, these additional exercises range from expanded exercises on camera control and panel navigation to creating, testing, exporting and importing components.
+
This page contains structured exercises used throughout Flowcode Help section, and further exercises<br>
 +
which are not featured in the Flowcode Help structure these additional exercises range from expanded exercises<br>
 +
on camera control and panel navigation to creating, testing, exporting and importing components.
  
 
==[[Components|Component Library]]==
 
==[[Components|Component Library]]==
List of components which provide detailed information about individual components as well as examples of them in use. The information provided includes component and simulation macro references as well as property references and component functionality.
+
List of components which provide detailed information about individual components as well as examples of them in use.<br>
 +
The information provided includes component and simulation macro references as well as property references and component functionality.
  
 
==[[Flowcode_Debugging|Flowcode Debugging]]==
 
==[[Flowcode_Debugging|Flowcode Debugging]]==
 
Learn how Flowcode can help you debug your programs with a variety of tools and technologies designed to streamline the debugging process.
 
Learn how Flowcode can help you debug your programs with a variety of tools and technologies designed to streamline the debugging process.
 
  
 
==[[Simulation_Functionality|Simulation Library]]==
 
==[[Simulation_Functionality|Simulation Library]]==
Structured overview of the library of Simulation Event macros and Simulation Functions. The information provided includes simulation macro references as well as event triggers and functionality.
+
Structured overview of the library of Simulation Event macros and Simulation Functions.<br>
 +
The information provided includes simulation macro references as well as event triggers and functionality.
  
 
==[[Component_Creation|Component Creation]]==
 
==[[Component_Creation|Component Creation]]==
Creating your own components in Flowcode gives you massive amounts of flexibility in your projects, this section covers how to create your own components and has some working examples to help.
+
Creating your own components in Flowcode gives you massive amounts of flexibility in your projects,<br>this section covers how to create your own components and has some working examples to help.
  
 
==[[What's New|What's New]]==
 
==[[What's New|What's New]]==
 
This page contains all the new exciting features introduced in Flowcode V10.
 
This page contains all the new exciting features introduced in Flowcode V10.
 +
 +
==[[Glossary|Glossary]]==
 +
This glossary helps general programmers understand Flowcode-specific terms and concepts.

Latest revision as of 14:17, 7 October 2024

Flowcode
Fc-v9-thumb.png
Developer Matrix TSL
Initial release 26/01/23
Operating system Windows 10,11
Platform IA-32 and x86-64
Available in English, French, German, Spanish
Type Advanced graphical programming software
License Proprietary
Website www.flowcode.co.uk


Flowcode v9 users should refer to the [Flowcode 9 wiki].

Fc-v9-mainlogo-01.png


Fc10 what is flowcode1.jpg    Web Barometer Web App.jpg




About Flowcode

Flowcode is a graphical programming Integrated Development Environment (IDE) that allows you to develop highly functional electrical,
electronic and electromechanical systems for microcontroller based systems and for Windows PCs and tablets.

Flowcode Embedded

Flowcode Embedded allows you to easily create highly functional programs for popular microcontrollers.

Flowcode App Developer

Flowcode App Developer allows you to create great Human Machine Interfaces for PCs, tablets and mobile phones using low cost
input output boards - locally (USB/Buetooth) or remotely (Wi-Fi, LAN, Internet) using Windows or web browsers.

Using Flowcode

Detailed glossary style overview of the aspects of the Flowcode environment broken down into relevant sections to aid in finding the knowledge
you require to use Flowcode effectively.

Examples and Tutorials

This page contains structured exercises used throughout Flowcode Help section, and further exercises
which are not featured in the Flowcode Help structure these additional exercises range from expanded exercises
on camera control and panel navigation to creating, testing, exporting and importing components.

Component Library

List of components which provide detailed information about individual components as well as examples of them in use.
The information provided includes component and simulation macro references as well as property references and component functionality.

Flowcode Debugging

Learn how Flowcode can help you debug your programs with a variety of tools and technologies designed to streamline the debugging process.

Simulation Library

Structured overview of the library of Simulation Event macros and Simulation Functions.
The information provided includes simulation macro references as well as event triggers and functionality.

Component Creation

Creating your own components in Flowcode gives you massive amounts of flexibility in your projects,
this section covers how to create your own components and has some working examples to help.

What's New

This page contains all the new exciting features introduced in Flowcode V10.

Glossary

This glossary helps general programmers understand Flowcode-specific terms and concepts.