public class Write_Module_FBwr extends Module_FBcl.CreateMdl
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<Evchain_FBcl.Wr> |
evChains |
(package private) FBlock_FBcl |
fbMdl
This FBlock is necessary if the module's code generation is done without a calling FBlock (primary module).
|
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.
|
private java.util.Map<java.lang.String,Write_FBlock_FBwr> |
idxAllFBlock
FBlock_FBcl used inside this module. |
private java.util.Map<java.lang.String,Write_FBlock_FBwr> |
idxFBexpr
FBexpr_FBcl used inside this module. |
private java.util.Map<java.lang.String,Write_FBlock_FBwr> |
idxFBlock
pure
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_FBlock_FBwr> |
idxFBoper
FBoper_FBcl used inside this module. |
private java.util.Map<java.lang.String,Write_FBtype_FBwr> |
idxFBtype
Index of
FBtype_FBcl which are defined in its properties inside this module. |
private java.util.Map<java.lang.String,Write_FBlock_FBwr> |
idxFBvar
Module variables as variable after expression used inside this module.
|
(package private) java.util.Map<java.lang.String,Evout_FBcl> |
idxInnerEvout
Inner Evout used for state machines.
|
java.util.Map<java.lang.String,Pin_FBcl> |
idxPinByName |
private java.util.Map<java.lang.String,EccState_FBcl.Create> |
idxStateEcc |
(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.
|
Write_FBtype_FBwr |
mdlifcWr
Write access to the type of the interface of module pins
|
Prj_FBcl |
prj |
(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 |
CreateModuleStateM_FBcl |
wStm |
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_FBcl prj)
Constructs a writer and constructs the module to write too inclusively its
Module_FBcl.fbtMdlifc |
| 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.
|
void |
addInnerEvout(Evout_FBcl evout) |
private void |
buildEvtree(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.fbtMdlifc
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()
Calls
Write_FBtype_FBwr.completeMissingEventPins() for all listFBtype. |
void |
createAllFBblockPins() |
void |
createAllInheritanceFromTypeInModule()
Completes the
FBtype_FBcl inside the Module_FBcl.fbtMdlifc
This is adequate TODO |
void |
createAllMdlIfcPins(LogMessage log)
Completes the module interface.
|
java.util.List<Evchain_FBcl.Wr> |
evChains() |
FBlock_FBcl |
fbMdl() |
DType_FBcl.DtIxmdl |
getCreateDType(DType_FBcl.DTypeInfo dtInfo)
Deprecated.
use fbtwmdl.getCreateDType
|
DType_FBcl.DtIxmdl |
getCreateDType(java.lang.String sDType)
Creates a specific DType on module level, especially as non deterministic type.
|
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,
int[] sizeArrayFBlock,
FBtype_FBcl fbType,
Write_FBtype_FBwr fbtw,
XY_FBcl graphicPos)
Gets the
Write_FBlock_FBwr 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,
Module_FBcl mdlDefining)
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 |
getCreateStateEcc(java.lang.String name) |
SteptimeRef_FBcl |
getCreateSteptime(java.lang.String steptime) |
DType_FBcl.DtIxfb |
getDTscalar(DType_FBcl dtArray)
Get the proper scalar type for a given array type
|
Write_FBlock_FBwr |
getFBexpr(java.lang.String name)
Returns an iterator sorted by the name of the FBlocks.
|
Write_FBlock_FBwr |
getFBvar(java.lang.String name) |
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> |
iterFBexpr()
Returns an iterator sorted by the name of the FBlocks.
|
java.lang.Iterable<Write_FBlock_FBwr> |
iterFBlock()
Returns an iterator sorted by the name of the FBlocks.
|
java.lang.Iterable<Write_FBlock_FBwr> |
iterFBlocks()
Returns an iterator sorted by the name of the FBlocks.
|
java.lang.Iterable<Write_FBlock_FBwr> |
iterFBlockTest()
Returns an iterator sorted by the name of the FBlocks.
|
java.lang.Iterable<Write_FBlock_FBwr> |
iterFBvar()
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()
The post preparing creates the
Write_FBlock_FBwr.createFBlockDTypes() for all FBlocks,
which's FBtype is not completed. |
private void |
setEqualsSteptimeInFBlocks(Write_FBlock_FBwr fbw)
Check whether the FBlock instance has any step time assignments.
|
void |
setExprOperatorToPins() |
private void |
storeFBlocksForCodegen() |
java.lang.String |
toString() |
void |
XXXcreateAllFBlockPinsFromTypeInModule()
Creates the pins of all
FBlock_FBcl instances given in idxAllFBlock in the module due to its FBtype_FBcl. |
DType_FBcl |
XXXgetDTarray(DType_FBcl dtscalar,
int[] sizeArray)
Get the proper array type for a given scalar type
|
addAlgorithm, addAllExprEv, addEvchain, addEvtreeRootnode, addFBlock_, addFBlockTEST_, addFBlockType, addOperation, addVariable, completeStates, createInnerEvout, getCreateDtype, getCreateDtype, getCreateDTypeArrayEnhanced, nextIxOperInMdl, setAlgorithmSimpleFB, setMdlTypepublic final Prj_FBcl prj
long timeStartModule
long timePrep
long timeDataPropg
long timeEventPropg
long timeCompleteModule
long timeWrFBcl
long timeCmpFBcl
long timeWrCmpCode
long timeEndModule
public final CreateModuleStateM_FBcl wStm
FBlock_FBcl fbMdl
public final Write_FBtype_FBwr 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
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> idxAllFBlock
FBlock_FBcl used inside this module.
It includes the FBexpr stored also in idxFBexpr
but does not include the idxFBlockTESTprivate 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> idxFBexpr
FBexpr_FBcl used inside this module.private java.util.Map<java.lang.String,Write_FBlock_FBwr> idxFBoper
FBoper_FBcl used inside this module.private java.util.Map<java.lang.String,Write_FBlock_FBwr> idxFBvar
private java.util.Map<java.lang.String,Write_FBlock_FBwr> idxFBlockTEST
FBlock_FBcl used inside this module for test stuff.
This FBlocks starts in their type name with 'TEST', for example for scope.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> idxStateEcc
int ixEvInput
java.util.Map<java.lang.String,Evout_FBcl> idxInnerEvout
public boolean xxxbCombinatoricDout
java.util.Map<java.lang.String,SteptimeRef_FBcl> idxSteptimes
public Write_Module_FBwr(java.lang.String name,
Prj_FBcl prj)
Module_FBcl.fbtMdlifcname - The name of the modulepublic java.lang.Iterable<Write_FBlock_FBwr> iterFBlocks()
idxAllFBlock.public java.lang.Iterable<Write_FBlock_FBwr> iterFBlock()
idxFBlock.public java.lang.Iterable<Write_FBlock_FBwr> iterFBlockTest()
idxFBlockTEST.public java.lang.Iterable<Write_FBlock_FBwr> iterFBexpr()
idxFBexpr.public java.lang.Iterable<Write_FBlock_FBwr> iterFBvar()
#idxVar.public Write_FBlock_FBwr getFBvar(java.lang.String name)
public Write_FBlock_FBwr getFBexpr(java.lang.String name)
idxFBexpr.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, int[] sizeArrayFBlock, FBtype_FBcl fbType, Write_FBtype_FBwr fbtw, XY_FBcl graphicPos)
Write_FBlock_FBwr 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#_kindFBlockfbType - the type identically with fbtw.fbt if fbtw is given. Else the necessary FBtype_FBclfbtw - 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#_kindFBlockfbType - the type identically with fbtw.fbt if fbtw is given. Else the necessary FBtype_FBclfbtw - 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#_kindFBlockfbType - the type identically with fbtw.fbt if fbtw is given. Else the necessary FBtype_FBclfbtw - 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, Module_FBcl mdlDefining)
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_FBcl.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 DType_FBcl.DtIxmdl getCreateDType(DType_FBcl.DTypeInfo dtInfo)
Write_FBtype_FBwr#getCreateDtypeFBtype(String, int[])sDType - sDTypeKey - sizeArray - public DType_FBcl.DtIxmdl getCreateDType(java.lang.String sDType)
Write_FBtype_FBwr#getCreateDtypeFBtype(String, int[])sDType - sDTypeKey - sizeArray - public DType_FBcl.DtIxfb getDTscalar(DType_FBcl dtArray)
dtArray - any type maybe array type.public DType_FBcl XXXgetDTarray(DType_FBcl dtscalar, int[] sizeArray)
dtArray - any type maybe array type.public void addEvchain(Evchain_FBcl.Wr evChain)
public void addInnerEvout(Evout_FBcl evout)
public java.util.List<Evchain_FBcl.Wr> evChains()
public SteptimeRef_FBcl getCreateSteptime(java.lang.String steptime)
public EccState_FBcl.Create getCreateStateEcc(java.lang.String name)
public java.lang.Iterable<EccState_FBcl.Create> iterStates()
Iterable.iterator() can be used especially in for loops.idxStateEcc == null, Iterator.hasNext() of this return value returns always false.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, #createAllFBlockPins() 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.fbtMdlifc
because of all ports are set with the correct Data types. It is important that the data type dependencies are correct.public void createAllMdlIfcPins(LogMessage log)
mdlifcWr
and then FBtype_FBcl.CreateFBT#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.CreateFBT#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 idxAllFBlock 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.fbtMdlifc
This is adequate TODOpublic void postPrepareFBlocks()
Write_FBlock_FBwr.createFBlockDTypes() for all FBlocks,
which's FBtype is not completed. For this FBlocks the DType dedication are forwarded
immediately to the PinType_FBcl in the FBtype_FBcl.
But it means also that all dtypes should be the same, usual dedicated ones.
That is, because the pins are not complete, and the FBlock_FBcl.dTypes array would be not determined in size.
FBtype_FBcl is already completed, this is on standard or library FBtypes,
a differing DType is stored already in the FBlock_FBcl.dTypes, also usual because the dtype in the DinoutType_FBcl.dType
is often a non full qualified (determined) DType. Hence nothing to do for that.public void completeMdl()
completeMissingEventPinsInTypes()
postPrepareFBlocks()
#postPrepareDtypesToIfc()
completeAllFBlockTypePinsInModule()
#propgDtypes(LogMessage)
Dataflow2Eventchain_FBrd#prc(Write_Module_FBwr)
completeAllMdlPins(TranslationScripts)
createAllFBblockPins()
createAllMdlIfcPins(LogMessage)
setExprOperatorToPins()
public FBlock_FBcl fbMdl()
public void completeMissingEventPinsInTypes()
Write_FBtype_FBwr.completeMissingEventPins() for all listFBtype.
This completes all event data relations which are not clarified by graphic,
but have its default behavior.private void setEqualsSteptimeInFBlocks(Write_FBlock_FBwr fbw)
public void setExprOperatorToPins()
private void buildEvtree(LogMessage logDbg)
private void storeFBlocksForCodegen()
public java.lang.String toString()
toString in class Module_FBcl.CreateMdl