ArduinoPrX : PrXoS 0.90 - Arduino Operating System (MI0283qt-2)

ArduinoPrX

Developing for the world

Friday 24th of March 2017 05:18:12 AM
Wähle eine Sprache


PrXoS 0.90 - Arduino Operating System (MI0283qt-2)

PrXoS 0.90 - Arduino Operating System (MI0283qt-2)

Content
In der Kategorie
2
3


In den Objekten

Social
Add to Flipboard Magazine.

[ Beschreibung ] - [ Download ] - [ Engine ] - [ Control Table ] - [ Function Table ] - [ Color Table ] - [ Control Design ] - [ Frame Elements / Functions ] - [ Videos ]

Beschreibung

Da der Umfang der API immer größer, komplexer und funktionaler wurde führe ich das Projekt als Betriebssystem weiter und nicht mehr nur als reine API da die Funktionen schon stark über die einer solchen hinaus reichen.Zu diesem Entschluss kam ich, da ich versuchte bei Testzwecken mit der API die Oberfläche meiner Finalen Version des AM808 zu erstellen bemerkte das ganze einfache Dinge die ich später für den Programm Code brauchen werde auch direkt in der API integriert sein könnten. Funktionen die nicht nur im Falle meines Sequencers nützlich wären. Ein kleines Beispiel ist einfach schon der Datei Auswahl Dialog, der für vieles dienen kann nicht nur um MIDI Dateien zu Laden sondern ganze Steuer Scripte. Aber der Ablauf solcher Externen während der Laufzeit ladbaren Scripte ist meiner Meinung nach nicht die Aufgabe der API sondern des Betriebssystems.Ich werde auch in dieser Beschreibung nur auf die Externen Funktionen und Deklarationen eingehen die man benötigt um es zu benutzen und nicht auf den Internen Ablauf des Betriebssystems der die Elemente prüft oder sie zeichnet.

Download

Um PrXoS zu benutzten muss man die 3 Dateien unten herunterladen.Die Header Datei kopiert man in (libraries) in einen neu erstellten Ordner Namens (PrXos).Danach die IDE starten und den Basic Sketch Laden.Als letztes muss man noch den Inhalt der C Datei in einen Neuen Tab kopieren und man kann mit seinem Projekt loslegen.Natürlich müssen auch die libraries für das Display, Touchpad und die SD Karte installiert sein.

  • Download Bereich
  • Engine

    Die Engine ist zur zeit noch keine wirkliche Engine sondern nur eine Art Probeaufbau einer Datenstruktur die alle werte enthält die das ganze System braucht um die Interaktionen der Steuerelemente zu erfassen und zu kontrollieren um ein möglichst einfache Portierung auf andere System zu Gewährleisten. Sie übergibt dem User Programm z.B. den aktuelle gedrückten Button oder Icon, das aktuell Layout oder Frame wird darin gespeichert. Auch die Counter Daten zur Steuerelement Verzögerung befindet sich in der Engine und Gewährleistet das eine Verzögerung keine Unterbrechung des Hauptprogramms zu folge hat.Das ganze ist noch im Aufbau und wird denke ich noch sehr in die Komplexität über gehen.
    Name Size in Bytes Array Declare Data
    Engine 24 Engine eng button,icon,layout,chlayout,frame,screenwidth,screenheight,fontwidth,fontheight,dt,dtv,bdt,idt,vdt,chdt

    Current State Control Table

    Es gibt zur zeit 7 unterschiedliche Steuerelemente und 2 arten von Containern.Buttons und Icons können Aktionen ausführen, Radiobuttons und Check boxen speichern und zeigen einen Wert von 0 oder 1, Slider und Value Felder können einen INT Wert von -32768 sowie 32768 im positiven Bereich speichern und anzeigen.Ein Layout besitzt keine große angaben lediglich die Information welche Elemente vorhanden sind eine ID und die Hintergrundfarbe.Ein hingegen ist schon ein wenig komplexer.In beiden kann immer nur ein Radio Button zur selben zeit aktiv sein.
    Controls Size in Bytes Array Declare Data
    Buttons 17 Button btn[] Id,x,y,width,height,color,shadow,textc,aligh,visible,layout,names
    Icons 19 Icon ico[] id,x,y,visible,layout,url
    Slider 21 Slider sld[] id,x,y,width,height,min,max,color,colorb,visible,layout,title
    Radiobuttons 14 Radio rda[] id,x,y,width,height,color,style,value,visible,layout,title
    Checkboxes 11 Checkbox chk[] id,x,y,width,color,style,value,visible,layout,title
    Labels 16 Label lbl[] x,y,width,height,color,colorf,border,shadow,visible,align,layout,title
    Value Field 22 Value val[] id,x,y,width,height,min,max,color,colorb,shadow,visible,value,layout,title
    Container Size in Bytes Array Declare Data
    Layouts 4 Layout lay[] id,check,color
    Frames 20 Frame frm[] id,x,y,width,height,color,titleon,clear,scorll,scrollh,scrollv,root,title

    Function Table

    Im der unteren Tabelle finden man die Funktionen die man benötigt um die Werte über ihre festgelegte ID abzurufen oder zu ändern.Es werden auch die Funktionen erklärt um das Layout zu wechseln oder ein Frame zu öffnen.
    FunktionBeschreibung Aufruf Ergebnis Beispiel führt dazu das
    PRXCHK Gibt den Wert einer Checkbox zurück PRXCHK(a) boolean x=PRXCHK(1); (x) der Wert der ersten Checkbox zugeschrieben wird
    PRXRDA Gibt den Wert eines Radiobuttons zurück PRXRDA(a) boolean x=PRXRDA(1); (x) der Wert des ersten Radiobuttons zugeschrieben wird
    PRXVAL Gibt den Wert eines Value Feldes zurück PRXVAL(a) int x=PRXVAL(1); (x) der Wert des ersten Value Feldes zugeschrieben wird
    PRXSLD Gibt den Wert eines Sliders zurück PRXSLD(a) int x=PRXSLD(1); (x) der Wert des ersten Sliders zugeschrieben wird
    PRXSETCHK Setzt den Wert einer Checkbox PRXSETCHK(a,b) PRXSETCHK(1,0); die erste Checkbox deaktiviert wird
    PRXSETVAL Setzt den Wert eines Value Feldes PRXSETVAL(a,b) PRXSETVAL(1,230); das erste Value Feld den Wert 230 bekommt
    PRXSETSLD Setzt den Wert eines Sliders PRXSETSLD(a,b) PRXSETSLD(1,239); der erste Slider den Wert 239 bekommt
    PRXCHANGELAYOUT Ändert das aktuelle Layout PRXCHANGELAYOUT(a,b) PRXCHANGELAYOUT(1,0); das das erste Layout gesetzt wird ohne den Bildschirm vorher zu löschen
    PRXFRAMEDRAWÖffnet ein Frame PRXFRAMEDRAW(a) PRXFRAMEDRAW(1);das das erste Frame geöffnet wird

    Color Table Version

    Die Größe der Farbpalette ist variable.Ich habe für meine Aufgaben eine Palette von 25 Farben erstellt unten sieht man ihre Darstellung auf verschiedenen Hintergründen.die ersten 4 Farben der Palette werden für die API benötigt es müssen also mindestens 4 deklariert werden.
    Color Table PrXoS
     Animation Ani[25] = {
     { 181,87,11 },        //0 Color For Checked Checkbox
     { 181,30,11 },        //1 Color For On Radio
     { 0,255,0 },          //2 Animation Color for Buttons
     { 0,0,118 },          //3 Title Color of Frames
     { 255,255,240 },      //4 
     { 153,215,169 },      //5               
     { 150,150,150 },      //6 
     { 100,100,100 },      //7     
     { 101,14,102 },       //8      
     { 60,60,60 },         //9 
     { 215,142,60 },       //10    
     { 34,23,12 },         //11      
     { 0,0,255 },          //12   
     { 0,0,0 },            //13 
     { 181,169,100 },      //14  
     { 255,255,255 },      //15                    
     { 255,0,0 },          //16 
     { 255,255,0 },        //17   
     { 0,255,255 },        //18   
     { 255,0,255 },        //19   
     { 56,67,145 },        //20   
     { 172,208,62 },       //21   
     { 114,0,0 },          //22   
     { 213,176,176 },      //23
     { 150,146,221 },  };  //24

    Control and Frame Design

    Links eine Grafische Ansicht nach gezeichnet in Paint, die zeigt wie die API die einzelnen Steuerelemente zeichnet teilweise in unterschiedlichen Variationen z.B. mit oder ohne Schatten , Linksbündig ausgerichteter Text oder zentrierter.Rechts ein Frame mit aktivierter Scrollbar und Titelleiste.

    Control Overview PrXoS

    Frame Elements and Functions
    Technische Daten

    Board
    Shields


    Videos

    Arduino PrXoS Version 0..
    Aufrufe / Views243


    PrXoS 0.90 - Arduino Operating System (MI0283qt-2) : Arduino PrXoS Version 0..

    Aufrufe / Views1
    Arduino PrXoS Version 0..
    Aufrufe / Views399


    PrXoS 0.90 - Arduino Operating System (MI0283qt-2) : Arduino PrXoS Version 0..

    Aufrufe / Views2

    Downloads

    Type Downloads
    PrXoS // Version 0.40
    Type Downloads
    PrXoS // Version 0.72
    Type Downloads
    PrXoS // Version 0.90