public class Write_FBlock_FBwr extends FBlock_FBcl.WriteFB
FBlock_FBcl.din etc are createt not until the FBlock is finished in its construction.
Before finishing instead the idxDin etc. holds exact the same information, also the order is proper to the PinBase_FBcl#ixPin.
| Modifier and Type | Field and Description |
|---|---|
protected Write_FBtype_FBwr |
fbtw
The appropriate type of this. null if the type is not given as created on demand, instead fix given via
FBlock_FBcl.fbt. |
protected Write_FBlock_FBwr |
fbwRef
A possible Reference to a FBlock from a
FBoper_FBcl, null for ordinary usage. |
java.util.Map<java.lang.String,Din_FBcl> |
idxDin
Used for expression inputs.
|
java.util.Map<java.lang.String,Dout_FBcl> |
idxDout
Used for expression outputs.
|
java.util.List<Write_FBlock_FBwr> |
listDepCtor
Stores FBlocks which should be constructed (ctor) before this, because delivers data for the ctor event.
|
java.util.List<Write_FBlock_FBwr> |
listDepInit
Stores FBlocks which should be initialized (init) before this, because delivers data for the init event.
|
private java.util.List<Evin_FBcl> |
listEvin
List to gather some event inputs before creating
FBlock_FBcl.evin. |
private java.util.List<Evout_FBcl> |
listEvout |
private java.util.List<PinPort_FBcl> |
listPort
This is for port inputs of a FBlock (UML-like).
|
private java.util.List<PinRef_FBcl> |
listRef
This is for aggregations, associations.
|
protected Write_Module_FBwr |
mdlw |
protected Prj_FBcl |
prj
to reference some common data types etc.
|
private java.util.List<EvinType_FBcl> |
XXXevinOperList
List to gather some event inputs before creating
FBlock_FBcl.evin. |
private int |
XXXnrAnyInputs
If inputs or outputs with any number of are possible in the type, this is the used number of this kind of inputs resp. outputs.
|
private int |
XXXnrAnyOutputs
If inputs or outputs with any number of are possible in the type, this is the used number of this kind of inputs resp. outputs.
|
fb| Constructor and Description |
|---|
Write_FBlock_FBwr(FBlock_FBcl fb,
Write_FBtype_FBwr fbtw,
Write_FBlock_FBwr fbwRef,
Write_Module_FBwr mdlw,
Prj_FBcl prj) |
Write_FBlock_FBwr(FBlock_FBcl fb,
Write_Module_FBwr mdlw,
Prj_FBcl prj,
boolean bCreatePins)
Creates a FBlock creator surrounding the given
FBlock_FBcl which may be a specific one. |
Write_FBlock_FBwr(FBtype_FBcl fbt,
java.lang.String name,
Write_Module_FBwr mdlw,
XY_FBcl graphicPos,
Prj_FBcl prj)
Create a
FBlock_FBcl writer with a given type. |
| Modifier and Type | Method and Description |
|---|---|
void |
addDin(Din_FBcl pin)
Adds a specific din pin, used for expression parts.
|
void |
addDout(Dout_FBcl pin)
Adds a specific din pin, used for expression parts.
|
void |
changeFBtype(FBtype_FBcl fbt)
Change the type of the FBlock.
|
(package private) void |
createFBlockDTypes()
This operation is called AFTER all pins are established with their initial (not dtype propagated) types.
|
private void |
createFBlockDTypes(Dinout_FBcl pin)
See
createFBlockDTypes(), execution per pin
This is faulty, test with example! |
void |
createFBlockPinsFromLists()
Establish all pins which are created by
#getCreatePinDtype(String, String, org.vishia.fbcl.fblock.PinKind_FBcl)
or #getCreatePin(org.vishia.fbcl.fblock.PinKind_FBcl, String, String). |
private void |
createPinsFromType(FBtype_FBcl fbt,
XY_FBcl graphicPos)
Deprecated.
TODO this is never called if the FBtype is not given on the first GBlock which creates the
Algorithm_FBcl.Write.
Hence it is not sure whether called or not.
The missing pins are yet added in createFBlockPinsFromLists() hence this operation is not necessary. test it! |
private boolean |
dTypeOk(DType_FBcl dtGiven,
DType_FBcl dtType)
Operation only used in assertion to check the correctness of DTypes in
FBlock_FBcl.dTypes |
Write_FBtype_FBwr |
fbtw()
Create access to
fbtw() |
Write_FBlock_FBwr |
fbwRef()
See #fbwRef.
|
Evin_FBcl |
getCreateEvPrepUpdin(Evin_FBcl evin)
Gets the associated update evin from prep evin or vice versa.
|
Evout_FBcl |
getCreateEvPrepUpdout(Evout_FBcl evout)
Gets the associated update evin from prep evin or vice versa.
|
Pin_FBcl |
getCreatePin(PinKind_FBcl kind,
DoutTargetCodeAccess accTargetCode,
java.lang.String name,
DType_FBcl.DTypeInfo dtypeInfo,
XY_FBcl xy)
While gathering graphic: gets an existing pin (from another Graphic instance) or creates it first time.
|
Pin_FBcl |
getCreatePin(PinKind_FBcl kind,
java.lang.String name)
This operation creates a pin in the post processing, usual event pins without type and without a specific graphic pos.
|
private Pin_FBcl |
getCreatePin2(PinType_FBcl pint,
XY_FBcl xy)
Gets or creates the given pin in the
FBtype_FBcl also for the FBlock_FBcl instance. |
Pin_FBcl |
getCreatePinFromType(PinType_FBcl pint,
XY_FBcl xy)
Gets or creates the given pin in the
FBtype_FBcl also for the FBlock_FBcl instance. |
Pin_FBcl |
getCreatePinFromType(java.lang.String name,
PinType_FBcl pint,
XY_FBcl xy)
Gets or creates the given pin in the
FBtype_FBcl also for the FBlock_FBcl instance. |
PinType_FBcl |
getCreatePinType(PinKind_FBcl kind,
DoutTargetCodeAccess accTargetCode,
java.lang.String name,
DType_FBcl.DtIxfb dtix) |
PinPort_FBcl |
getCreatePortThis()
Creates the THIS port for any FBlock.
|
Evin_FBcl |
getEvinPrep(Evout_FBcl evUpdout)
Returns null or the only one prepare input event due to the update event.
|
EvinType_FBcl |
getEvinType(int ix) |
Evin_FBcl |
getEvPrepUpdin(Evin_FBcl evin)
Gets the associated update evin from prep evin or vice versa.
|
Evout_FBcl |
getEvPrepUpdout(Evout_FBcl evout)
Gets the associated update evout from prep evout or vice versa.
|
Pin_FBcl |
getPinFromType(PinType_FBcl pint)
Gets the FBlock pin from the given pin in the
FBtype_FBcl. |
<any> |
iterDin()
Iterator over all Din of this FBlock
|
<any> |
iterDin4dout(Dout_FBcl dout,
boolean bCreate)
Iterator over all associated din to an evin using the
#listDin and PinType_FBcl.mAssocInOut. |
<any> |
iterDin4evin(Evin_FBcl evin,
boolean bCreate)
Iterator over all associated din to an evin using the
#listDin. |
<any> |
iterDout()
Iterator over all Dout of this FBlock.
|
<any> |
iterDout4evout(Evout_FBcl evout,
boolean bCreate)
Iterator over all associated din to an evin using the
#listDin. |
<any> |
iterEvin4din(Din_FBcl din,
boolean bCreate)
Iterator over all associated evin to a din (usual one) using the
listEvin. |
<any> |
iterEvin4evout(Evout_FBcl evout,
boolean bCreate)
Iterator over all associated evin to a evout (usual one) using the
listEvin and PinType_FBcl.mAssocInOut. |
<any> |
iterEvin4mask(long mask)
Iterator over all associated evin to a given mask using the
listEvin. |
java.lang.Iterable<EvinType_FBcl> |
iterEvinType() |
java.lang.Iterable<Evout_FBcl> |
iterEvout()
Iterator over all Evout of this FBlock
|
<any> |
iterEvout4dout(Dout_FBcl dout,
boolean bCreate)
Iterator over all associated evin to a din (usual one) using the
listEvin. |
<any> |
iterEvout4evin(Evin_FBcl evin,
boolean bCreate)
Iterator over all associated evout to a evin (usual one) using the
listEvout and PinType_FBcl.mAssocInOut. |
<any> |
iterEvout4mask(long mask,
boolean bCreate)
Iterator over all associated evout to a dout (usual one) using the
listEvout. |
java.lang.Iterable<PinPort_FBcl> |
iterPort()
Iterator over all Evout of this FBlock
|
<any> |
iterPort4evout(Evout_FBcl evout,
boolean bCreate) |
java.lang.Iterable<PinRef_FBcl> |
iterRef()
Iterator over all Evout of this FBlock
|
<any> |
iterRef4evin(Evin_FBcl evin,
boolean bCreate) |
java.util.List<Evin_FBcl> |
listEvin()
Iterator over all Evin of this FBlock
|
int |
nrDinCurrent()
Used to build a specific Din
|
int |
nrEvinCurrent()
Used to build multiple din with only one
EvinType_FBcl in the FBtype_FBcl |
int |
nrEvoutCurrent() |
int |
nrofDout()
Number of all Dout of this FBlock.
|
int |
propgDTypeToPin(Dinout_FBcl dinoutDst,
DType_FBcl.DtIxmdl dtixSrc,
Write_FBlock_FBwr fbw,
java.util.List<Dout_FBcl> listDoutForward,
java.util.HashMap<Din_FBcl,Din_FBcl> idxDinBackward,
LogMessage log)
Propagates the data type from a given qualified pinSrc to dinoutDst in this FBlock.
|
boolean |
setFbw(Write_FBtype_FBwr fbtw,
FBtype_FBcl fbt)
Set a detected type afterwards.
|
java.lang.String |
toString() |
void |
updatePinsFromType()
Update all pins from an instance if meanwhile the type in
fbtw as Write_FBtype_FBwr has more pins. |
void |
XXXcreateFBlockPinsFromType(LogMessage log)
Create the arrays of pins of the FBlock due to the order and completeness in the complete given and referenced
FBtype_FBcl
via its internal link FBlock_FBcl.getTypeFB(). |
EvoutType_FBcl |
XXXgetCreateEvoutTypeFromEvin(EvinType_FBcl evin)
Gets the associated EvoutType_FBcl from a given Evout_Type_FBcl and
PinType_FBcl.mAssocInOut. |
EvinType_FBcl |
XXXgetCreateEvPrepFromPrepout(EvoutType_FBcl evout)
Gets the associated EvinType_FBcl from a given Evout_Type_FBcl using and
PinType_FBcl.mAssocInOut. |
Pin_FBcl |
XXXgetCreatePinDtype(PinKind_FBcl kind,
java.lang.String name,
DType_FBcl.DtIx_ dtix,
XY_FBcl xy)
Deprecated.
|
int |
XXXnrAnyInputs() |
int |
XXXnrAnyOutputs() |
clone_dtypes, createDinoutPins, createEvinoutPins, createRefPortPins, get_idxPin, getConnInArray, getConnOutArray, getEvInArray, getEvOutArray, put_idxPin, put_idxPin, setFBlockDTypePin, setSteptimeprotected Write_FBtype_FBwr fbtw
FBlock_FBcl.fbt.protected final Write_FBlock_FBwr fbwRef
FBoper_FBcl, null for ordinary usage.protected final Prj_FBcl prj
protected final Write_Module_FBwr mdlw
private int XXXnrAnyInputs
private int XXXnrAnyOutputs
public java.util.Map<java.lang.String,Din_FBcl> idxDin
public java.util.Map<java.lang.String,Dout_FBcl> idxDout
private java.util.List<Evin_FBcl> listEvin
FBlock_FBcl.evin.
If the lists are not null, the gathering is in progress.private java.util.List<Evout_FBcl> listEvout
private java.util.List<EvinType_FBcl> XXXevinOperList
FBlock_FBcl.evin.
If the lists are not null, the gathering is in progress.private java.util.List<PinRef_FBcl> listRef
private java.util.List<PinPort_FBcl> listPort
public final java.util.List<Write_FBlock_FBwr> listDepCtor
org.vishia.fbcl.readSource.Dataflow2Eventchain_FBrdpublic final java.util.List<Write_FBlock_FBwr> listDepInit
org.vishia.fbcl.readSource.Dataflow2Eventchain_FBrdpublic Write_FBlock_FBwr(FBlock_FBcl fb, Write_FBtype_FBwr fbtw, Write_FBlock_FBwr fbwRef, Write_Module_FBwr mdlw, Prj_FBcl prj)
public Write_FBlock_FBwr(FBlock_FBcl fb, Write_Module_FBwr mdlw, Prj_FBcl prj, boolean bCreatePins)
FBlock_FBcl which may be a specific one.
Write_FBlock_FBwr(FBtype_FBcl, String, Write_Module_FBwr, XY_FBcl, Prj_FBcl) creates by itself the FBlock_FBcl
Hint yet only used for FBjoin_FBcl and State_FBcl
FBtype_FBcl if the control argument bCreatePins is set
and the FBtype is completed.fb - the already created specific (derived) FBlock_FBcl, contains also the graphic positionmdlw - the module where the FBlock is member of.prj - Project for common accessbCreatePins - true then create all pins as in the fb:FBlock_FBcl.fbt is given.
If false then the pins are created later, for example due to connections.
Pins and connections are stored in OdgGBlock during reading odg graphic.public Write_FBlock_FBwr(FBtype_FBcl fbt, java.lang.String name, Write_Module_FBwr mdlw, XY_FBcl graphicPos, Prj_FBcl prj)
FBlock_FBcl writer with a given type. The type is fix, comes from Lib or Std FBlocks.
Hence all pins are defined, and no Write_FBtype_FBwr is used.
The type pins are established also as pins for this Write_FBlock_FBwr.
For specific type pins which allows expand only the first pin is created here.
All others are created with #getCreatePinFromType(TODO name).fbt - can be null if the FBtype is not given on the first found FBlock for this instancekind - Kind of the FBlockname - parentModule - public Write_FBtype_FBwr fbtw()
fbtw()public Write_FBlock_FBwr fbwRef()
private void createPinsFromType(FBtype_FBcl fbt, XY_FBcl graphicPos)
Algorithm_FBcl.Write.
Hence it is not sure whether called or not.
The missing pins are yet added in createFBlockPinsFromLists() hence this operation is not necessary. test it!Write_FBlock_FBwr(FBtype_FBcl, String, Write_Module_FBwr, XY_FBcl, Prj_FBcl)
and also Write_FBlock_FBwr(FBlock_FBcl, Write_Module_FBwr, Prj_FBcl, boolean)
to initialize all existing pins in FBtype_FBcl also in the instance.
This is not done for Write_FBlock_FBwr(FBlock_FBcl, Write_FBtype_FBwr, Write_FBlock_FBwr, Write_Module_FBwr, Prj_FBcl),
for an on demand created type.
FBlock_FBcl.idxPins which are intrinsically marked with '...$event'
without this '..$event' to find it from graphic, but only if the pin is unique.
This helps for more simple graphic on pre-defined FBlocks without events.
Pin_FBcl.pintfbt - The type from where the pins are taken, must be FBtype_FBcl.isCompleted()graphicPos - of the FBlockpublic boolean setFbw(Write_FBtype_FBwr fbtw, FBtype_FBcl fbt)
fbtw - null or the given type as writable, defined in the graphicfbt - never null, should be proper to the given fbtw != null.public void changeFBtype(FBtype_FBcl fbt)
FBlock_FBcl.WriteFBPinType_FBcl.ixPin.changeFBtype in class FBlock_FBcl.WriteFBfbt - The new type.public void updatePinsFromType()
fbtw as Write_FBtype_FBwr has more pins.
That occurs frequently if more as one instance of a type is created in the graphic.
This is sensible if the type is also created yet.
FBtype_FBcl. For FBlocks from library types.
For library types the FBlocks have only the used pins.public int propgDTypeToPin(Dinout_FBcl dinoutDst, DType_FBcl.DtIxmdl dtixSrc, Write_FBlock_FBwr fbw, java.util.List<Dout_FBcl> listDoutForward, java.util.HashMap<Din_FBcl,Din_FBcl> idxDinBackward, LogMessage log)
dinoutDst - The pin as destination for propagation.
It is a Din_FBcl on forward propagation, Dout_FBcl for backwarddtixSrc - The DType to propagatedtArraySrc - The Dtype array which may be existing on a array FBlock. All Array usages should have the same.fbw - listDoutForward - idxDinBackward - log - FBlock_FBcl.WriteFB#propagateDtypeToPin(Dinout_FBcl, DType_FBcl, DType_FBcl, List, HashMap, LogMessage)
which is called here.public Pin_FBcl getCreatePin(PinKind_FBcl kind, DoutTargetCodeAccess accTargetCode, java.lang.String name, DType_FBcl.DTypeInfo dtypeInfo, XY_FBcl xy)
PinType_FBcl referenced in the returned Pin_FBcl.pint and enters it in the associated fbtw.
See also #getCreatePinDtype(org.vishia.fbcl.fblock.PinKind_FBcl, String, DType_FBcl)kind - if null do not create in the typename - sDType - data type can be null, should be null for events etc.depId - sizeArray - xy - Pin_FBcl.pint. null if not found and kind == nullpublic Pin_FBcl getCreatePin(PinKind_FBcl kind, java.lang.String name)
kind - name - @Deprecated public Pin_FBcl XXXgetCreatePinDtype(PinKind_FBcl kind, java.lang.String name, DType_FBcl.DtIx_ dtix, XY_FBcl xy)
PinType_FBcl referenced in the returned Pin_FBcl.pint and enters it in the associated fbtw.
See also #getCreatePin(org.vishia.fbcl.fblock.PinKind_FBcl, String, String)kind - if null do not createname - type - can be null, should be null for events etc.Pin_FBcl.pint. null if not found and kind == nullpublic Pin_FBcl getPinFromType(PinType_FBcl pint)
FBtype_FBcl.pinType - given pin in the type which is necessary herepublic Pin_FBcl getCreatePinFromType(java.lang.String name, PinType_FBcl pint, XY_FBcl xy)
FBtype_FBcl also for the FBlock_FBcl instance.
it searches the pin in #idxPinObjByName, creates it if not found.pinType - given pin in the type which is necessary hereprivate Pin_FBcl getCreatePin2(PinType_FBcl pint, XY_FBcl xy)
FBtype_FBcl also for the FBlock_FBcl instance.
it searches the pin in #idxPinObjByName, creates it if not found.pinType - given pin in the type which is necessary herepublic Pin_FBcl getCreatePinFromType(PinType_FBcl pint, XY_FBcl xy)
FBtype_FBcl also for the FBlock_FBcl instance.
it searches the pin in #idxPinObjByName, creates it if not found.pinType - given pin in the type which is necessary herepublic PinPort_FBcl getCreatePortThis()
void createFBlockDTypes()
FBlock_FBcl.sizeArrayFB was set.
Only then the correct DType from a pin can be gotten as DType of the pin itself (without sizeArrayFB)
or just as DType of the connection in the module with sizeArrayFB).private void createFBlockDTypes(Dinout_FBcl pin)
createFBlockDTypes(), execution per pin
This is faulty, test with example!
Because: The primary DType is as is! Its faulty to presume an array type on an pin of an array FBlock
because a scalar signal can drive the pin of each array FBlock element.
This is not able to detect here, only then in forward propagation.pin - private boolean dTypeOk(DType_FBcl dtGiven, DType_FBcl dtType)
FBlock_FBcl.dTypesdtGiven - The DType found in the slot for ixDTfbdtType - The DType from the DinoutType.
If the FBlock_FBcl.sizeArrayFB is given, it checks whether the dtGiven has the correct array size.public int nrDinCurrent()
public int nrEvinCurrent()
EvinType_FBcl in the FBtype_FBcllistEvin()public int nrEvoutCurrent()
public int XXXnrAnyInputs()
public int XXXnrAnyOutputs()
public void addDin(Din_FBcl pin)
din - public void addDout(Dout_FBcl pin)
din - public <any> iterDin()
public <any> iterDout()
public int nrofDout()
public java.util.List<Evin_FBcl> listEvin()
public java.lang.Iterable<Evout_FBcl> iterEvout()
public java.lang.Iterable<PinRef_FBcl> iterRef()
public java.lang.Iterable<PinPort_FBcl> iterPort()
public <any> iterEvin4din(Din_FBcl din, boolean bCreate)
listEvin.din - Any din of this FBlockbCreate - true then create in FBlock if exists in FBtypepublic <any> iterEvin4evout(Evout_FBcl evout, boolean bCreate)
listEvin and PinType_FBcl.mAssocInOut.evout - Any evout of this FBlockbCreate - true then create in FBlock if exists in FBtypepublic <any> iterEvin4mask(long mask)
listEvin.mask - can come for example from Pin_FBcl#getMaskEvoutMdlBackChainDrivenpublic <any> iterEvout4evin(Evin_FBcl evin, boolean bCreate)
listEvout and PinType_FBcl.mAssocInOut.evin - Any evin of this FBlockbCreate - true then create in FBlock if exists in FBtypepublic <any> iterEvout4mask(long mask,
boolean bCreate)
listEvout.mask - can come for example from Pin_FBcl.getMaskEvinMdlChainDriven()bCreate - true then create in FBlock if exists in FBtypepublic <any> iterEvout4dout(Dout_FBcl dout, boolean bCreate)
listEvin.dout - and dout of this FBlockbCreate - true then create in FBlock if exists in FBtypepublic Evin_FBcl getEvinPrep(Evout_FBcl evUpdout)
public <any> iterDin4evin(Evin_FBcl evin, boolean bCreate)
#listDin.evin - Any input event of this FBlock. Its PinType_FBcl.mAssocEvData is evaluated.public <any> iterDin4dout(Dout_FBcl dout, boolean bCreate)
#listDin and PinType_FBcl.mAssocInOut.evin - Any input event of this FBlock. Its PinType_FBcl.mAssocInOut is evaluated.public <any> iterDout4evout(Evout_FBcl evout, boolean bCreate)
#listDin.evin - Any input event of this FBlock. Its PinType_FBcl.mAssocEvData is evaluated.public <any> iterPort4evout(Evout_FBcl evout, boolean bCreate)
public <any> iterRef4evin(Evin_FBcl evin, boolean bCreate)
public Evin_FBcl getEvPrepUpdin(Evin_FBcl evin)
fbtw list information, or if fbtw==null (library block)
then it accesses the FBlock_FBcl.WriteFB.fb.FBlock_FBcl.getTypeFB() and their FBtype_FBcl.evinPin.evin - given evinpublic Evin_FBcl getCreateEvPrepUpdin(Evin_FBcl evin)
fbtw list information, or if fbtw==null (library block)
then it accesses the FBlock_FBcl.WriteFB.fb.FBlock_FBcl.getTypeFB() and their FBtype_FBcl.evinPin.evin - given evinpublic EvinType_FBcl XXXgetCreateEvPrepFromPrepout(EvoutType_FBcl evout)
PinType_FBcl.mAssocInOut.
This operation is assigned to the Write_FBlock and not to Write_FBtype
because the Write_FBlock knows whether a Write_FBtype is referenced via fbtw
or only a FBtype_FBcl (via super class FBlock_FBcl.WriteFB#fb).
It uses either the fbtw list information, or if fbtw==null (library block)
then it accesses the FBlock_FBcl.WriteFB.fb.FBlock_FBcl.getTypeFB() and their FBtype_FBcl.evinPin.evin - given evinpublic EvoutType_FBcl XXXgetCreateEvoutTypeFromEvin(EvinType_FBcl evin)
PinType_FBcl.mAssocInOut.
This operation is assigned to the Write_FBlock and not to Write_FBtype
because the Write_FBlock knows whether a Write_FBtype is referenced via fbtw
or only a FBtype_FBcl (via super class FBlock_FBcl.WriteFB#fb).
It uses either the fbtw list information, or if fbtw==null (library block)
then it accesses the FBlock_FBcl.WriteFB.fb.FBlock_FBcl.getTypeFB() and their FBtype_FBcl.evinPin.evin - given evinpublic PinType_FBcl getCreatePinType(PinKind_FBcl kind, DoutTargetCodeAccess accTargetCode, java.lang.String name, DType_FBcl.DtIxfb dtix)
public EvinType_FBcl getEvinType(int ix)
public java.lang.Iterable<EvinType_FBcl> iterEvinType()
public Evout_FBcl getEvPrepUpdout(Evout_FBcl evout)
fbtw list information, or if fbtw==null (library block)
then it accesses the FBlock_FBcl.WriteFB.fb.FBlock_FBcl.getTypeFB() and their FBtype_FBcl.evoutPin.evout - given evout as PinKind_FBcl.Evout or PinKind_FBcl.EvinMdl, but not as update pinpublic Evout_FBcl getCreateEvPrepUpdout(Evout_FBcl evout)
fbtw list information, or if fbtw==null (library block)
then it accesses the FBlock_FBcl.WriteFB.fb.FBlock_FBcl.getTypeFB() and their FBtype_FBcl.evoutPin.evin - given evinpublic void XXXcreateFBlockPinsFromType(LogMessage log)
FBtype_FBcl
via its internal link FBlock_FBcl.getTypeFB().
The already existing pins while establish the FBlock in #idxPinObjByName are used.
It means all #getCreatePinFromType(PinType_FBcl) are used.XXXcreateFBlockPinsFromType in class FBlock_FBcl.WriteFBpublic void createFBlockPinsFromLists()
#getCreatePinDtype(String, String, org.vishia.fbcl.fblock.PinKind_FBcl)
or #getCreatePin(org.vishia.fbcl.fblock.PinKind_FBcl, String, String).
It writes the content of idxDin, idxDout, listEvin, listEvout, listRef, listPort
to the adequate arrays in FBlock_FBcl.din etc.
Write_FBlock_FBwr are the graphical drawn pins.
FBlock_FBcl.WriteFB#createEvinoutPins(FBtype_FBcl, List, List)(FBtype_FBcl, Map, Map),
FBlock_FBcl.WriteFB#createDinoutPins(FBtype_FBcl, Map, Map) and FBlock_FBcl.WriteFB#createRefPortPins(List, List)(FBtype_FBcl, Map, Map)
are organized in the following way:
FBtype_FBcl, hence the order of pins is as defined in the FBtype_FBcl.
PinType_FBcl exists, then it is entered in FBlock_FBcl.dout etc. in that order.
Write_FBlock_FBwr exists to the same PinType_FBcl in FBtype_FBcl,
then all these pins are written to FBlock_FBcl.dout etc. in the sub order as in idxDout etc.
This sub order is the graphical order, because it follows the graphical order in
OdgGBlock.idxPin (and the graphical order of more as one GBlock in the module).
Write_FBlock_FBwr are written to FBlock_FBcl.
public java.lang.String toString()
toString in class java.lang.Object