Skip to content

RicardoMonteiroSimoes/GPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPI - Graphical Programming Interface

 

Table of content

Why

This project started out as a personal endavour to get to know Java better, as well as learn some concepts in terms of programming. I always wanted something that I could quickly programm to try out stuff, or enhance with real coding. This idea came to me after seeing a buddy work with Node.RED and several projects I realised in CodeSys. For me, CodeSys is how most systems in terms of Automation and Programming should work: Users with the right skillset can create their own blocks using normal programming, whilst users who are not found of programming can do it with the blocks.

Goals

I've defined several Goals for this Project.

  • Create an OpenSource Graphical Logic Editor that can:
    • Enable others to adapt it to their Language trough user submitted translations
    • Enable the creation of new Blocks trough easy-to-use extension of existing classes, which have all the hard work done
    • Enable the User to save Logics
    • Implement the Concept of MVC so that others can implement the underlying Logic structure without much of a hassle
  • Create an OpenSource Server-Applet for the SaveFile that can:
    • Run the SaveFile without much overhang on stand alone devices, like a RPi
    • Allow debugging access to it trough a webpage (jetty, for example)
  • Personal Goals I'd like to fullfill:
    • Allow teachers to use this Tool in terms of teaching people about programming
    • Include extensive Documentation about all the issues I had, as well as the Design choices I made
    • Extensive Documentation about how to create new Blocks

Installation

This project is far from finished and is not yet intended for usage. You can fork it and compile it, but I cannot guarantee it'll work.

Current Status

Currently I am rewriting most of my Code to adapt the MVC Concept. This is likely the 2nd time I am rewriting a huge portion of the code, so beware of that when forking.

Savefile

There have been first tests for a Savefile. Example:

{
  "totalIds": [
    15023,
    11649,
    19319
  ],
  "panels": [
    {
      "name": "testPanel",
      "isEditable": true,
      "blocks": [
        {
          "inputs": [
            {
              "pointName": "INPUT",
              "connectionType": "INPUT",
              "classData": "Boolean"
            }
          ],
          "outputs": [
            {
              "pointName": "OUTPUT",
              "connectionType": "OUTPUT",
              "classData": "ServerPacket"
            }
          ],
          "blockName": "Packet Creator",
          "uniqueID": "15023",
          "blockType": "NETWORK"
        },
        {
          "port": 5250,
          "turnOnMessage": "true",
          "turnOffMessage": "false",
          "isRunning": false,
          "inputs": [
            
          ],
          "outputs": [
            {
              "pointName": "OUTPUT",
              "connectionType": "OUTPUT",
              "classData": "Boolean"
            }
          ],
          "blockName": "TCP In",
          "uniqueID": "11649",
          "blockType": "NETWORK"
        },
        {
          "inputs": [
            {
              "pointName": "INPUT",
              "connectionType": "INPUT",
              "classData": "ServerPacket"
            }
          ],
          "outputs": [
            
          ],
          "blockName": "TCP Out",
          "uniqueID": "19319",
          "blockType": "NETWORK"
        }
      ],
      "connections": [
        {
          "startID": "11649.0",
          "endID": "15023.0"
        },
        {
          "startID": "15023.0",
          "endID": "19319.0"
        }
      ],
      "listSpot": 0
    }
  ]
}

Work done

  • Converting to MVC
    • Programming: 30% done
    • Testing: 0% done
  • Enabling Localization
    • Programming: 40% done
    • Testing: 5% done
  • Creating a Savefile
    • Programming: 15% done
    • Testing: 5% done

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages