public class Write_Module_FBwr extends Module_FBcl.Create
Modifier and Type | Field and Description |
---|---|
private java.util.List<Evchain_FBcl.Wr> |
evChains |
Write_FBtype_FBwr |
fbtwMdl
Write access to the type of the
FBlock_FBcl associated to the inner module pins |
Write_FBlock_FBwr |
fbwMdl
Write access of the FBlock presenting the module for inner connection processing.
|
(package private) java.util.HashMap<DType_FBcl,DType_FBcl> |
idxDtypeMdl
Index between
DType_FBcl on the PinType_FBcl of the module (key for map)
and the DType_FBcl on the Pin_FBcl of the module (value for the map). |
private java.util.Map<java.lang.String,Write_FBlock_FBwr> |
idxFBlock
FBlock_FBcl used inside this module. |
private java.util.Map<java.lang.String,Write_FBlock_FBwr> |
idxFBlockTEST
FBlock_FBcl used inside this module for test stuff. |
private java.util.Map<java.lang.String,Write_FBtype_FBwr> |
idxFBtype
Index of
FBtype_FBcl which are defined in its properties inside this module. |
java.util.Map<java.lang.String,Pin_FBcl> |
idxPinByName |
private java.util.Map<java.lang.String,EccState_FBcl.Create> |
idxState |
(package private) java.util.Map<java.lang.String,SteptimeRef_FBcl> |
idxSteptimes |
(package private) int |
ixEvInput |
private java.util.List<Write_FBlock_FBwr> |
listFblock
FBlock_FBcl used inside this module. |
private java.util.List<Write_FBlock_FBwr> |
listFBoper
FBlock_FBcl FBexpr with THIZ and an operation, it are FBoper. |
private java.util.List<Write_FBtype_FBwr> |
listFBtype
List of
FBtype_FBcl which are defined in its properties inside this module. |
java.util.List<DinExprK_FBcl> |
listKpinToReplaceVariable
Intermediate index of all K1999-Pins of expressions which contains access to variables which needs to be fulfilled.
|
FBtype_FBcl.WriteFBT |
mdlifcWr
Write access to the type of the interface of module pins
|
Prj_FBCLrd |
prj |
private static java.lang.String |
sIndent |
(package private) long |
timeCmpFBcl |
(package private) long |
timeCompleteModule |
(package private) long |
timeDataPropg |
(package private) long |
timeEndModule |
(package private) long |
timeEventPropg |
(package private) long |
timePrep |
(package private) long |
timeStartModule |
(package private) long |
timeWrCmpCode |
(package private) long |
timeWrFBcl |
boolean |
xxxbCombinatoricDout
TODO a port may be combinatoric.
|
private java.util.List<FBexpr_FBcl> |
XXXlistExprEv
The order in this list is the bit position in
Evinout_FBcl.condBits . |
mdl
Constructor and Description |
---|
Write_Module_FBwr(java.lang.String name,
Prj_FBCLrd prj)
Constructs a writer and constructs the module to write too inclusively its
Module_FBcl.ifcFB |
Modifier and Type | Method and Description |
---|---|
void |
addEvchain(Evchain_FBcl.Wr evChain) |
void |
addFBlock(Write_FBlock_FBwr fbc,
int nrNetwork)
Adds the new FBlock.
|
void |
addFBlockTEST(Write_FBlock_FBwr fbc)
Adds the new FBlock.
|
void |
addFBoper(Write_FBlock_FBwr fbc)
Adds a FBoper to complete.
|
private void |
buildEvtree(org.vishia.msgDispatch.LogMessage logDbg) |
void |
completeAllFBlockTypePinsInModule()
Completes all
FBtype_FBcl inside the idxFBtype with its pins
and store it in Mdl
This is a central approach that is necessary when in a LibreOffice diagram some types are completely given externally (fbd). |
void |
completeAllMdlPins(TranslationScripts trlScripts)
Completes the inner
FBtype_FBcl of all of the Module_FBcl.ifcFB
because of all ports are set with the correct Data types. |
void |
completeMdl()
Complete the new read module:
completeMissingEventPinsInTypes()
postPrepareFBlocks()
#postPrepareDtypesToIfc()
completeAllFBlockTypePinsInModule()
#propgDtypes(LogMessage)
Dataflow2Eventchain_FBrd#prc(Write_Module_FBwr)
completeAllMdlPins(TranslationScripts)
createAllFBblockPins()
createAllMdlIfcPins(LogMessage)
setExprOperatorToPins()
|
void |
completeMissingEventPinsInTypes() |
void |
createAllFBblockPins() |
void |
createAllInheritanceFromTypeInModule()
Completes the
FBtype_FBcl inside the Module_FBcl.ifcFB
This is adequate TODO |
void |
createAllMdlIfcPins(org.vishia.msgDispatch.LogMessage log)
Completes the module interface.
|
java.util.List<Evchain_FBcl.Wr> |
evChains() |
Write_FBlock_FBwr |
getCreateFBjoin(java.lang.String name)
Gets the
FBlock_FBcl writer by name or creates it. |
Write_FBlock_FBwr |
getCreateFBlock(java.lang.String name,
FBtype_FBcl fbType,
Write_FBtype_FBwr fbtw,
XY_FBcl graphicPos)
Gets the
FBlock_FBcl writer by name or creates it. |
Write_FBlock_FBwr |
getCreateFBlockTEST(java.lang.String name,
FBtype_FBcl fbType,
Write_FBtype_FBwr fbtw,
XY_FBcl graphicPos)
Gets the
FBlock_FBcl writer by name or creates it. |
Write_FBtype_FBwr |
getCreateFBtype(FBtype_FBcl fbt) |
Write_FBtype_FBwr |
getCreateFBtype(java.lang.String name,
FBlock_FBcl.Blocktype fbtype)
Gets an existing
FBtype_FBcl to complete it with more features given in a GraphicBlock of LibreOffice-odg
or another appropriate tool or creates just first time this FBlock. |
EccState_FBcl.Create |
getCreateState(java.lang.String name) |
SteptimeRef_FBcl |
getCreateSteptime(java.lang.String steptime) |
DType_FBcl |
getDTypePinMdl(DinoutType_FBcl pinMdl)
Gets the instance
DType_FBcl due to the type DType_FBcl for a modules pin. |
Write_FBlock_FBwr |
getFBw(java.lang.String name)
Returns a stored FBlock, also a TEST FBlock by given name.
|
Pin_FBcl |
getPin(PinType_FBcl pintw)
Gets a pin with known pin type.
|
Pin_FBcl |
getPin(java.lang.String namePin)
Gets a pin with known pin type.
|
java.lang.Iterable<Write_FBlock_FBwr> |
iterFBlocks()
Returns an iterator sorted by the name of the FBlocks.
|
java.lang.Iterable<EccState_FBcl.Create> |
iterStates()
Returns an Iterable over all states, which's
Iterable.iterator() can be used especially in for loops. |
void |
postPrepareFBlocks() |
private void |
setEqualsSteptimeInFBlocks()
Check whether the FBlock instance has any step time assignments.
|
void |
setExprOperatorToPins() |
void |
XXXcreateAllFBlockPinsFromTypeInModule()
Creates the pins of all
FBlock_FBcl instances given in idxFBlock in the module due to its FBtype_FBcl . |
addAlgorithm, addAllExprEv, addEvchain, addEvtreeRootnode, addFBlock_, addFBlockTEST_, addFBlockType, addIfcFile, addOperation, addVariable, completeStates, nextIxOperInMdl, setAlgorithmSimpleFB, setDtypes, toString
public final Prj_FBCLrd prj
long timeStartModule
long timePrep
long timeDataPropg
long timeEventPropg
long timeCompleteModule
long timeWrFBcl
long timeCmpFBcl
long timeWrCmpCode
long timeEndModule
public final FBtype_FBcl.WriteFBT mdlifcWr
public final Write_FBlock_FBwr fbwMdl
public final Write_FBtype_FBwr fbtwMdl
FBlock_FBcl
associated to the inner module pinspublic final java.util.List<DinExprK_FBcl> listKpinToReplaceVariable
public final java.util.Map<java.lang.String,Pin_FBcl> idxPinByName
java.util.HashMap<DType_FBcl,DType_FBcl> idxDtypeMdl
DType_FBcl
on the PinType_FBcl
of the module (key for map)
and the DType_FBcl
on the Pin_FBcl
of the module (value for the map).
It is filled on new created pins with non full deterministic pins.private java.util.List<Evchain_FBcl.Wr> evChains
private java.util.List<FBexpr_FBcl> XXXlistExprEv
Evinout_FBcl.condBits
.
The list is transferred to the Module_FBcl.exprEv
,
it can be used in code generation to select the name of the FBexpr by given bits.private java.util.List<Write_FBlock_FBwr> listFblock
FBlock_FBcl
used inside this module.private java.util.List<Write_FBlock_FBwr> listFBoper
FBlock_FBcl
FBexpr with THIZ and an operation, it are FBoper.private java.util.Map<java.lang.String,Write_FBlock_FBwr> idxFBlock
FBlock_FBcl
used inside this module.private java.util.Map<java.lang.String,Write_FBlock_FBwr> idxFBlockTEST
FBlock_FBcl
used inside this module for test stuff.private java.util.List<Write_FBtype_FBwr> listFBtype
FBtype_FBcl
which are defined in its properties inside this module.private java.util.Map<java.lang.String,Write_FBtype_FBwr> idxFBtype
FBtype_FBcl
which are defined in its properties inside this module.private java.util.Map<java.lang.String,EccState_FBcl.Create> idxState
int ixEvInput
public boolean xxxbCombinatoricDout
java.util.Map<java.lang.String,SteptimeRef_FBcl> idxSteptimes
private static final java.lang.String sIndent
public Write_Module_FBwr(java.lang.String name, Prj_FBCLrd prj)
Module_FBcl.ifcFB
name
- The name of the modulepublic java.lang.Iterable<Write_FBlock_FBwr> iterFBlocks()
idxFBlock
.public void addFBlock(Write_FBlock_FBwr fbc, int nrNetwork)
fbwr
- nrNetwork
- from 1, max 254public void addFBlockTEST(Write_FBlock_FBwr fbc)
fbwr
- nrNetwork
- from 1, max 254public void addFBoper(Write_FBlock_FBwr fbc)
fbwr
- public Write_FBlock_FBwr getCreateFBlock(java.lang.String name, FBtype_FBcl fbType, Write_FBtype_FBwr fbtw, XY_FBcl graphicPos)
FBlock_FBcl
writer by name or creates it.
This is called whenever a new FBlock_FBcl
instance is necessary in a module to complete.name
- of the FBlock instancefbkind
- stored in FBlock_FBcl#_kindFBlock
fbType
- the type identically with fbtw.fbt if fbtw is given. Else the necessary FBtype_FBcl
fbtw
- null if fbType is from a given (standard or library) FBlock. Given if the FBlock's FBtype_FBcl
is given in this module.FBlock_FBcl
writer.public Write_FBlock_FBwr getCreateFBjoin(java.lang.String name)
FBlock_FBcl
writer by name or creates it.
This is called whenever a new FBlock_FBcl
instance is necessary in a module to complete.name
- of the FBlock instancefbkind
- stored in FBlock_FBcl#_kindFBlock
fbType
- the type identically with fbtw.fbt if fbtw is given. Else the necessary FBtype_FBcl
fbtw
- null if fbType is from a given (standard or library) FBlock. Given if the FBlock's FBtype_FBcl
is given in this module.FBlock_FBcl
writer.public Write_FBlock_FBwr getCreateFBlockTEST(java.lang.String name, FBtype_FBcl fbType, Write_FBtype_FBwr fbtw, XY_FBcl graphicPos)
FBlock_FBcl
writer by name or creates it.
This is called whenever a new FBlock_FBcl
instance is necessary in a module to complete.name
- of the FBlock instancefbkind
- stored in FBlock_FBcl#_kindFBlock
fbType
- the type identically with fbtw.fbt if fbtw is given. Else the necessary FBtype_FBcl
fbtw
- null if fbType is from a given (standard or library) FBlock. Given if the FBlock's FBtype_FBcl
is given in this module.FBlock_FBcl
writer.public Write_FBlock_FBwr getFBw(java.lang.String name)
name
- public Write_FBtype_FBwr getCreateFBtype(java.lang.String name, FBlock_FBcl.Blocktype fbtype)
FBtype_FBcl
to complete it with more features given in a GraphicBlock of LibreOffice-odg
or another appropriate tool or creates just first time this FBlock.
It is for FBlocks which are defined in graphic programming.
FBtype_FBcl
itself is registered in Prj_FBCLrd.idxAllFBlockType
where all usable FBtype_FBcl
are listed sorted by type.name
- unique name in the projectpublic Write_FBtype_FBwr getCreateFBtype(FBtype_FBcl fbt)
public Pin_FBcl getPin(PinType_FBcl pintw)
idxPinByName
with the given name in the type.pintw
- public Pin_FBcl getPin(java.lang.String namePin)
idxPinByName
with the given name.pintw
- public void addEvchain(Evchain_FBcl.Wr evChain)
public java.util.List<Evchain_FBcl.Wr> evChains()
public SteptimeRef_FBcl getCreateSteptime(java.lang.String steptime)
public EccState_FBcl.Create getCreateState(java.lang.String name)
public java.lang.Iterable<EccState_FBcl.Create> iterStates()
Iterable.iterator()
can be used especially in for loops.idxState
== null, Iterator.hasNext()
of this return value returns always false.public DType_FBcl getDTypePinMdl(DinoutType_FBcl pinMdl)
DType_FBcl
due to the type DType_FBcl
for a modules pin.pinMdl
- A pin of the type of module.public void completeAllFBlockTypePinsInModule()
FBtype_FBcl
inside the idxFBtype
with its pins
and store it in Mdl
This is a central approach that is necessary when in a LibreOffice diagram some types are completely given externally (fbd).
Then adequate the types given in the LibreOffice diagram should be completed to the same state,
and then, if all the types are complete, #createAllFBlockPinsFromTypeInModule()
creates the pins of all FBlocks
due to the type. This is the proper approach.public void createAllFBblockPins()
public void completeAllMdlPins(TranslationScripts trlScripts)
FBtype_FBcl
of all of the Module_FBcl.ifcFB
because of all ports are set with the correct Data types. It is important that the data type dependencies are correct.public void createAllMdlIfcPins(org.vishia.msgDispatch.LogMessage log)
mdlifcWr
and then FBtype_FBcl.WriteFBT#thisfb
of type FBtype_FBcl
is the access to the type of the module from outer. It should contain all pins
but also the access to operations with the events, to call this operation in code generation
without knowledge of the inner module structure.
DoutType_FBcl
etc.,
an output to the inner wiring of the module.
Hence the mirrored pin types are created here with call of
FBtype_FBcl.WriteFBT#createDinTypeMdlIfc(DoutType_FBcl[])
etc. with the given arrays in the inner module interface.
All Pin instances are created newly from the given pin instances of the inner module interface
copying all necessities.public void XXXcreateAllFBlockPinsFromTypeInModule()
FBlock_FBcl
instances given in idxFBlock
in the module due to its FBtype_FBcl
.
This should be called before the connections are associated.public void createAllInheritanceFromTypeInModule()
FBtype_FBcl
inside the Module_FBcl.ifcFB
This is adequate TODOpublic void postPrepareFBlocks()
public void completeMdl()
completeMissingEventPinsInTypes()
postPrepareFBlocks()
#postPrepareDtypesToIfc()
completeAllFBlockTypePinsInModule()
#propgDtypes(LogMessage)
Dataflow2Eventchain_FBrd#prc(Write_Module_FBwr)
completeAllMdlPins(TranslationScripts)
createAllFBblockPins()
createAllMdlIfcPins(LogMessage)
setExprOperatorToPins()
public void completeMissingEventPinsInTypes()
private void setEqualsSteptimeInFBlocks()
public void setExprOperatorToPins()
private void buildEvtree(org.vishia.msgDispatch.LogMessage logDbg)