Class CellDisp
Version 1.0
Modified 07-JUL-2017 13:58:14.00
Kod nmps_plc_display.c
CellDisp används för att visa innehållet i de data-objekt som ligger i 
NMpsCell-objekt i operatörsbilder. Det ger också möjlighet åt operatören att ta 
bort data-objekt, flytta data-objekt bakåt eller framåt i en cell, välja ut ett 
dataobjekt för att visa mer information om objektet.

CellDisp-objektet gör det möjligt att visa en tabell över data-objekten i en cell, 
med objektsnamn och ett antal utvalda attribut. CellDisp-objektet innehåller ett 
antal vektorer dit valda attribut i data-objekten i cellerna kopieras. Vektorerna 
kan sedan visas i en operatörsbild.

Det finns även en utvalsfunktion med vilken ett objekt kan väljas ut. Det 
utvalda objektet kopieras till ett visningsobjekt, dvs ett permanent objekt av 
samma klass som de dataobjekt som finns i cellen. Om man i en operatörsbild 
visar innehållet i visningsobjektet kommer detta alltid att spegla det utvalda 
objektet.

Om man har flera tabeller i samma bild, men vill ha en gemensam 
utvalsfunktion, kopplar man samman ett antal CellDisp-objekt mha ett 
DispLink-objekt. DispLink-objektet ser till att högst ett objekt är utvalt 
samtidigt. I DispLink-objektet finns dessutom funktioner för att ta bort det 
utvalda objektet, flytta det utvalda objektet ett steg framåt eller bakåt i cellen.

Utvalet sker antingen genom att varje tabellrad förses med en utvals-
tryckknapp, eller med  SelectNext/SelectPrevious funktion som finns i 
DispLink objeket. Genom SelectNext/SelectPrevious kan utvalet ske mha 
funktionstangenter i de fall detta är att föredra framför mus-klickningar. 

En tabell kan visa objekten i upp till 10 celler. I CellDisp-objektet finns det 
plats för 5 attribut av typen float, 5 integer och 5 boolean. Dessutom finns en 
vektor som innehåller objid för data-objekten.

Max antal dataobjekt som kan visas i samma tabell är 60.
Samma CellDisp kan hämta in dataobjekt från upp till 10 cell-objekt.
Cell objektet kan vara av klassen NMpsCell eller NMpsStoreCell.
Ett DispLink-objekt kan länka ihop ett obegränsat antal CellDisp-objekt.
Utvalsfunktionen är tv ej kopplad till urvalsfunktionen i NMpsStoreCell-
objeket.


RtBody attributes pwr_sClass_CellDisp
Pointer to Void Cell1 Cell1 Cell1-Cell10 kopplas till GetData-objekt som refererar objekt av klassen
NMpsCell eller NMpsStoreCell.
Pointer to Void Cell2 Cell2 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell3 Cell3 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell4 Cell4 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell5 Cell5 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell6 Cell6 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell7 Cell7 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell8 Cell8 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell9 Cell9 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Pointer to Void Cell10 Cell10 Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.
Float32 Link Link Kopplas till utgången på ett DispLink-objekt. Används för att länka
urvalsfunktionen med andra CellDisp-objekt, eller för att utnyttja funktioner
för att ta bort objekt ur cellen, flytta objekt framåt eller bakåt i cellen,
välja ut nästa eller föregående.
Pointer to Void DisplayObject DObj Kopplas till GetData-objekt som refererar ett visnings-objekt av samma klass
som de dataobjekt som hanteras i cellerna. DisplayObject gör det möjligt att
visa upp mer detaljerad information om det utvalda objektet genom att
innehållet i utvalt objekt kommer att kopieras till visnings-objektet.
ClassId DataClass   Klassen på de dataobjekt som hanteras i cellerna.
Int32 Function  
Function:
0 Normal funktion.
1 Data-objekten läggs i omvänd ordning i CellDisp-objektet.
Int32 Number   Om utvals-funktionen ska vara gemensam med andra DispCell-objekt måste
det finnas en ordning mellan objekten, som bestämmer i vilken ordning utvalet
hoppar mellan olika DispCell-tabeller. DispCell-objekten som är kopplade till
ett gemensamt DispLink-objekt numreras från ett och uppåt. Numret för varje
DispLink-objekt som tillhör en länk måste vara unikt, och det får inte finnas
något hopp i nummerserien.
Int32 MaxSize   Storlek på den tabell som visas upp (antal rader). MaxSize kan inte vara större
än 60.
Int32 SelDirection   SelDirection ändrar utvals-riktningen, dvs man får omvänd funktion för
funktionerna SelectNext /SelectPrevious och MoveForward/MoveBackward.
Detta kan vara användbart om man har länkat ihop flera CellDisp-objekt, och
en del tabeller visar dataobjekten i rättvänd ordning, andra i omvänd ordning.
Betydelsen av ‘Next’ och ‘Previous’ är då inte entydig.

SelDirection 0 innebär att Next och Forward syftar mot högre index i cellen,
SelDirection 1 att Next och Forward syftar mod lägre index.
Array of String32 FloatAttr   Vektor pwr_tString32 med 5 element. Här anges namnet på de attribut
dataobjekten av typen float som ska visas i tabellen. Max 5 attribut kan anges.
Attributet i FloatAttr[0] kommer att kopieras till F1, FloatAttr[1] till F2 osv.
Array of String32 BooleanAttr   Vektor pwr_tString32 med 5 element. Här anges namnet på del attribut i
dataobjekten av typen boolean som ska visas i tabellen. Max 5 attribut kan
anges. Attributet i BooleanAttr[0] kommer att kopieras till B1, BooleanAttr[1]
kommer att kopieras till B2 osv.
Array of String32 IntAttr   Vektor pwr_tString32 med 5 element Här anges namnet på del attribut i
dataobjekten av typen integer som ska visas i tabellen. Max 5 attribut kan
anges. Attributet i IntAttr[0] kommer att kopieras till I1, IntAttr[1] kommer att
kopieras till I2 osv.
Array of Boolean Select   Vektor pwr_tBoolean med 60 element. Ett objekt på rad i väljs ut genom att
Select[i] sätts. Select[n] kopplas i operatörsbilden till en tryckknapp för rad n i
tabellen. OBS! pwr_SetDig kan ej användas i gms eftersom den ej hanterar
vektorer, använd pwr_SetValue istället.
Array of Boolean OldSelect  
Array of Objid Objid   Vektor pwr_tObjid med 60 element. Innehåller objid för dataobjekt i cellen.
Array of Float32 F1   F1-F5 är vektorer pwr_tFloat32 med 60 element. Innehåller värde i attributen
angivet i FloatAtt för respektive dataobjekt i cellen.
Array of Float32 F2   Contains the values of the attribute specfied in FloatAttr[1].
Array of Float32 F3   Contains the values of the attribute specfied in FloatAttr[2].
Array of Float32 F4   Contains the values of the attribute specfied in FloatAttr[3].
Array of Float32 F5   Contains the values of the attribute specfied in FloatAttr[4].
Array of Boolean B1   B1-B5 är vektorer pwr_tBoolean32 med 60 element. Innehåller värde i attributen
angivet i BooleanAtt för respektive dataobjekt i cellen.
Array of Boolean B2   Contains the values of the attribute specfied in BooleanAttr[1].
Array of Boolean B3   Contains the values of the attribute specfied in BooleanAttr[2].
Array of Boolean B4   Contains the values of the attribute specfied in BooleanAttr[3].
Array of Boolean B5   Contains the values of the attribute specfied in BooleanAttr[4].
Array of Int32 I1   I1-I5 är vektorer pwr_tInt32 med 60 element. Innehåller värde i attributen
angivet i IntAtt för respektive dataobjekt i cellen.
Array of Int32 I2   Contains the values of the attribute specfied in IntAttr[1].
Array of Int32 I3   Contains the values of the attribute specfied in IntAttr[2].
Array of Int32 I4   Contains the values of the attribute specfied in IntAttr[3].
Array of Int32 I5   Contains the values of the attribute specfied in IntAttr[4].
Array of Int32 FloatAttrOffs   Calculated offset for the float attributes.
Array of Int32 BooleanAttrOffs   Calculated offset for the boolean attributes.
Array of Int32 IntAttrOffs   Calculated offset for the integer attributes.
Objid SelectObjid  
UInt32 DataSize  
Int32 OldLastIndex  

DevBody attributes 
pwrs:Class-$PlcNode PlcNode  


GraphPlcNode
object_type 11
parameters[0] 12
parameters[1] 0
parameters[2] 0
parameters[3] 0
graphmethod 0 (standard, individual attributes)
graphindex 0
default_mask[0] 1
default_mask[1] 0
segname_annotation 1
compmethod 35
compindex 0
tracemethod 0
traceindex 0
connectmethod 0
executeordermethod 2
objname CellDisp
graphname CellDisp


Template Object
MaxSize 60


Attributes detail


Cell1 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit|Noremove
GraphName Cell1
Kropp RtBody
Cell1-Cell10 kopplas till GetData-objekt som refererar objekt av klassen 
NMpsCell eller NMpsStoreCell.

Cell2 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell2
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell3 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell3
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell4 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell4
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell5 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell5
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell6 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell6
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell7 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell7
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell8 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell8
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell9 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell9
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Cell10 Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName Cell10
Kropp RtBody
Data input connected to a GetData refering to a NMpsCell or NMpsStoreCell object.

Link Input
Klass Input
Typ Float32
Flags State|Noedit
GraphName Link
Kropp RtBody
Kopplas till utgången på ett DispLink-objekt. Används för att länka 
urvalsfunktionen med andra CellDisp-objekt, eller för att utnyttja funktioner 
för att ta bort objekt ur cellen, flytta objekt framåt eller bakåt i cellen, 
välja ut nästa eller föregående. 

DisplayObject Input
Klass Input
Typ Pointer to Void
Flags Pointer|State|Noedit
GraphName DObj
Kropp RtBody
Kopplas till GetData-objekt som refererar ett visnings-objekt av samma klass 
som de dataobjekt som hanteras i cellerna. DisplayObject gör det möjligt att 
visa upp mer detaljerad information om det utvalda objektet genom att 
innehållet i utvalt objekt kommer att kopieras till visnings-objektet.

DataClass Intern
Klass Intern
Typ ClassId
Flags
Kropp RtBody
Klassen på de dataobjekt som hanteras i cellerna.

Function Intern
Klass Intern
Typ Int32
Flags
Kropp RtBody

Function:
0  Normal funktion.
1  Data-objekten läggs i omvänd ordning i CellDisp-objektet.

Number Intern
Klass Intern
Typ Int32
Flags
Kropp RtBody
Om utvals-funktionen ska vara gemensam med andra DispCell-objekt måste 
det finnas en ordning mellan objekten, som bestämmer i vilken ordning utvalet 
hoppar mellan olika DispCell-tabeller. DispCell-objekten som är kopplade till 
ett gemensamt DispLink-objekt numreras från ett och uppåt. Numret för varje 
DispLink-objekt som tillhör en länk måste vara unikt, och det får inte finnas 
något hopp i nummerserien.

MaxSize Intern
Klass Intern
Typ Int32
Flags
Kropp RtBody
Storlek på den tabell som visas upp (antal rader). MaxSize kan inte vara större 
än 60.

SelDirection Intern
Klass Intern
Typ Int32
Flags
Kropp RtBody
SelDirection ändrar utvals-riktningen, dvs man får omvänd funktion för 
funktionerna SelectNext /SelectPrevious och MoveForward/MoveBackward. 
Detta kan vara användbart om man har länkat ihop flera CellDisp-objekt, och 
en del tabeller visar dataobjekten i rättvänd ordning, andra i omvänd ordning. 
Betydelsen av ‘Next’ och ‘Previous’ är då inte entydig.

SelDirection 0 innebär att Next och Forward syftar mot högre index i cellen, 
SelDirection 1 att Next och Forward syftar mod lägre index.

FloatAttr Intern
Klass Intern
Typ Array of String32
Flags Array
Elements 5
Kropp RtBody
Vektor pwr_tString32 med 5 element. Här anges namnet på de attribut 
dataobjekten av typen float som ska visas i tabellen. Max 5 attribut kan anges. 
Attributet i FloatAttr[0] kommer att kopieras till F1, FloatAttr[1] till F2 osv.

BooleanAttr Intern
Klass Intern
Typ Array of String32
Flags Array
Elements 5
Kropp RtBody
Vektor pwr_tString32 med 5 element. Här anges namnet på del attribut i 
dataobjekten av typen boolean som ska visas i tabellen. Max 5 attribut kan 
anges. Attributet i BooleanAttr[0] kommer att kopieras till B1, BooleanAttr[1] 
kommer att kopieras till B2 osv. 

IntAttr Intern
Klass Intern
Typ Array of String32
Flags Array
Elements 5
Kropp RtBody
Vektor pwr_tString32 med 5 element Här anges namnet på del attribut i 
dataobjekten av typen integer som ska visas i tabellen. Max 5 attribut kan 
anges. Attributet i IntAttr[0] kommer att kopieras till I1, IntAttr[1] kommer att 
kopieras till I2 osv.

Select Intern
Klass Intern
Typ Array of Boolean
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Vektor pwr_tBoolean med 60 element. Ett objekt på rad i väljs ut genom att 
Select[i] sätts. Select[n] kopplas i operatörsbilden till en tryckknapp för rad n i 
tabellen.  OBS! pwr_SetDig kan ej användas i gms eftersom den ej hanterar 
vektorer, använd pwr_SetValue istället.

OldSelect Intern
Klass Intern
Typ Array of Boolean
Flags Array|State|Invisible
Elements 60
Kropp RtBody

Objid Intern
Klass Intern
Typ Array of Objid
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Vektor pwr_tObjid med 60 element. Innehåller objid för dataobjekt i cellen. 

F1 Intern
Klass Intern
Typ Array of Float32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
F1-F5 är vektorer pwr_tFloat32 med 60 element. Innehåller värde i attributen
angivet i FloatAtt för respektive dataobjekt i cellen.

F2 Intern
Klass Intern
Typ Array of Float32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in FloatAttr[1].

F3 Intern
Klass Intern
Typ Array of Float32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in FloatAttr[2].

F4 Intern
Klass Intern
Typ Array of Float32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in FloatAttr[3].

F5 Intern
Klass Intern
Typ Array of Float32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in FloatAttr[4].

B1 Intern
Klass Intern
Typ Array of Boolean
Flags Array|State|Noedit
Elements 60
Kropp RtBody
B1-B5 är vektorer pwr_tBoolean32 med 60 element. Innehåller värde i attributen 
angivet i BooleanAtt för respektive dataobjekt i cellen.

B2 Intern
Klass Intern
Typ Array of Boolean
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in BooleanAttr[1].

B3 Intern
Klass Intern
Typ Array of Boolean
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in BooleanAttr[2].

B4 Intern
Klass Intern
Typ Array of Boolean
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in BooleanAttr[3].

B5 Intern
Klass Intern
Typ Array of Boolean
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in BooleanAttr[4].

I1 Intern
Klass Intern
Typ Array of Int32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
I1-I5 är vektorer pwr_tInt32 med 60 element. Innehåller värde i attributen 
angivet i IntAtt för respektive dataobjekt i cellen.

I2 Intern
Klass Intern
Typ Array of Int32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in IntAttr[1].

I3 Intern
Klass Intern
Typ Array of Int32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in IntAttr[2].

I4 Intern
Klass Intern
Typ Array of Int32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in IntAttr[3].

I5 Intern
Klass Intern
Typ Array of Int32
Flags Array|State|Noedit
Elements 60
Kropp RtBody
Contains the values of the attribute specfied in IntAttr[4].

FloatAttrOffs Intern
Klass Intern
Typ Array of Int32
Flags Array|Invisible
Elements 5
Kropp RtBody
Calculated offset for the float attributes.

BooleanAttrOffs Intern
Klass Intern
Typ Array of Int32
Flags Array|Invisible
Elements 5
Kropp RtBody
Calculated offset for the boolean attributes.

IntAttrOffs Intern
Klass Intern
Typ Array of Int32
Flags Array|Invisible
Elements 5
Kropp RtBody
Calculated offset for the integer attributes.

SelectObjid Intern
Klass Intern
Typ Objid
Flags State|Invisible
Kropp RtBody

DataSize Intern
Klass Intern
Typ UInt32
Flags State|Invisible
Kropp RtBody

OldLastIndex Intern
Klass Intern
Typ Int32
Flags State|Invisible
Kropp RtBody

PlcNode Buffer
Klass Buffer
Typ pwrs:Class-$PlcNode
Flags Invisible
Kropp DevBody