Pin_FBcl.XXXXXEKind| Modifier and Type | Field and Description |
|---|---|
SteptimeRef_FBcl |
steptime
The steptime is only necessary if the module has no event connection.
|
int |
zVectorDim
If not 0 then this port is a scalar port and the associated
Pin_FBcl.fb can be used for a vector (sliced, for each) operation
if the data type of connection is a vector. |
connectDst, connectSrc, fb, name, version, xy| Constructor and Description |
|---|
Dinout_FBcl(DinoutType_FBcl pint,
java.lang.String name,
FBlock_FBcl fb,
XY_FBcl xy) |
Dinout_FBcl(PinType_FBcl pint,
java.lang.String name,
FBlock_FBcl fb,
XY_FBcl xy) |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
dtArrayCpp() |
DType_FBcl |
dType()
Gets the dType of the pin, as it is stored on the pin in the module.
|
DType_FBcl |
dType(java.lang.String sElement,
Module_FBcl mdl)
Gets the data type.
|
char |
dTypeChar()
Returns the type char from
DTypeBase_FBcl.typeChar especially for code generation. |
DType_FBcl |
dTypeCix(char[] cDtBack,
int[] ixDTmdlBack)
This is the core routine for
dType() but it can also return the source of the DType
and the ixDTmdl especially for debugging. |
java.lang.String |
dtypeCpp(char what) |
DType_FBcl |
dTypeDecl()
This should not return a
Din_FBcl.dTypeCastInp. |
DType_FBcl |
dTypeFBpinNonArray()
Gets the data type of the pin itself non regarding an array situation of the FBlock.
|
DType_FBcl.DtIxmdl |
dTypeIxMdl()
Returns the DType with ixDTmdl from this pin.
|
static java.lang.String |
explainDTypeIx() |
(package private) DType_FBcl.DtIxmdl |
getDTypeIxMdl()
Gets a possible DType with ixMdl as stored in specific pins.
|
SteptimeRef_FBcl |
getSteptime()
Returns the steptime reference to the instance.
|
java.lang.String |
getSteptimeStr()
Returns the string representation of the Steptime.
|
boolean |
isComplexDType()
Simple access to DType properties from Otx script.
|
java.lang.String |
namePin() |
void |
propagateSteptime(SteptimeRef_FBcl steptime) |
java.lang.CharSequence |
sDTypeIx()
Returns the "%1`2:DType" with info from where and "ixDTfb`ixDTmdl:"
|
java.lang.CharSequence |
sDTypeIx(int bitsWhat)
Creates an info about the
DType_FBcl of this pin
including the ixDTfb and ixDTmdl from the FBlock_FBcl tables. |
java.lang.CharSequence |
sDTypeIxId()
Returns the "%1`2:DType#id" with info from where and "ixDTfb`ixDTmdl:" and the unique instance
DType_FBcl.instanceId |
java.lang.String |
setDType(DType_FBcl.DtIxmdl dtixSrc,
LogMessage log)
Checks and sets the given DType of the pin.
|
private void |
setSteptimeToOtherCon(Pin_FBcl[] thiscon,
DinoutType_FBcl[] typecon,
SteptimeRef_FBcl steptimeType) |
DType_FBcl.DtIxmdl |
XXXdTypeIxMdl()
Deprecated.
this is the older algorithm which do the work inside
dTypeCix(char[], int[])
but meanwhile too complex or faulty (TODO think about). |
addEvchain, addEvchainDepending, changePinType, connDst, connectFrom, connectFrom, connectFrom, connSrc, containsEvchain, containsOtherEvchain, dinType, doutType, evChainHex, evinType, evoutType, getFirstConnDst, getFirstConnSrc, getMaskEvinMdlChainDriven, getMaskEvoutMdlBackChainDriven, getOneConnSrc, getOneConnSrc, graphicPos, isEventBackChainDriven, isEventBackChainDriven, isEventChainDriven, isEventChainDriven, isEventChainDriven, isEventChainDriven, isKind, isNotKind, isUpdatePin, iterConnDst, iterConnSrc, iterEvchainDep, iterEvchainShow, nameFBpin, nameFBpin, nameIdentifier, nrofConnDst, nrofConnSrc, pinNameFB, pint, pinType, removeConnectDst, removeConnectSrc, removeConnSrcAll, removePinSimpleInConnDst, setEventBackChainDriven, setEventChainDriven, sMaskHexEvinMdlChainDriven, spec, spec, throwError, toString, toString, XXXremoveConnectSrc, XXXremoveConnSrc, XXXsetEventBackChainDrivenpublic SteptimeRef_FBcl steptime
public int zVectorDim
Pin_FBcl.fb can be used for a vector (sliced, for each) operation
if the data type of connection is a vector.
Callmodule_FBlock_JgenMdl-connection has this property >0 only if it is a for-each-subsystem and the port is a for-each-port.public Dinout_FBcl(DinoutType_FBcl pint, java.lang.String name, FBlock_FBcl fb, XY_FBcl xy)
public Dinout_FBcl(PinType_FBcl pint, java.lang.String name, FBlock_FBcl fb, XY_FBcl xy)
public final java.lang.String namePin()
public DType_FBcl dTypeFBpinNonArray()
FBlock_FBcl.dTypes but reduced by the FBlock_FBcl.sizeArrayFB property.
or it is the module propagated type stored in FBtype_FBcl.dTypesType also reduced by the FBlock_FBcl.sizeArrayFB property.
It is null if the type is yet not set.
DinExpr_FBcl and DinExprK_FBcl.public final DType_FBcl dType()
DinoutType_FBcl#ixDtype is <0 (==-1), the DinoutType_FBcl.dType from the FBType is returned.
It means the FBlock has not a specific DType on the instance pin, the dtype on the PinType pin is valid.
( cDt = ':')
DinoutType_FBcl#ixDtype is >=0 then it is possible
that the Pin has a specific DType in opposite to the PinType in FBtype,
for example a determined type where the FBtype dtype is non determined. Then the following possibilities may occur:
FBlock_FBcl#ixDTypeInMdl is not given or this entry has -1,
but the FBlock_FBcl.dTypes is given with the entry on DinoutType_FBcl#ixDtype, then this DType is returned.
This is for non module-width dedicated DTypes on the FBlock instance
which differs from the usual non deterministic DinoutType_FBcl.dType in the PinType - FBtype.
( cDt = '+')
FBlock_FBcl#ixDTypeInMdl is given with a valid index of the DType on module level,
and the FBlock_FBcl.mdl and their Module_FBcl#dTypesActual is also given,
then the DType on this indexed position is returned. This is the full determined DType of the module's instance,
if the module has non determined types on its inputs.
( cDt = '%')
FBlock_FBcl#ixDTypeInMdl is given with a valid index, Module_FBcl#dTypesActual is not given
because the module has not instance specific DTypes,
but Module_FBcl.fbtMdlifc and there FBtype_FBcl.dTypesType is given,
then this DType on the indexed position is returned.
This is the situation for a module determined DType but the DType is deterministic,
do not need an instance specification in Module_FBcl#dTypesActual.
This is the case for code generation of a module as top level in graphic.
( cDt = '&')
FBlock_FBcl#ixDTypeInMdl is given with a valid index,
but the FBlock_FBcl.mdl is not set or both the Module_FBcl#dTypesActual is not given
and the Module_FBcl.fbtMdlifc and there FBtype_FBcl.dTypesType is not given,
then also either FBlock_FBcl.dTypes on entry on DinoutType_FBcl#ixDtype is returned,
or if this is not given, DinoutType_FBcl.dType is returned.
This are only fall backs if something is wrong.
( cDt = '-')
DType_FBcl returned here,
then call sDTypeIx() for a textual output with more information.
dType() and dType()public DType_FBcl dTypeDecl()
Din_FBcl.dTypeCastInp.
Should also call the overridden Din_FBcl.dTypeDecl()
For all other DinoutType_FBcl it is the same as #dType()dType()public final DType_FBcl dTypeCix(char[] cDtBack, int[] ixDTmdlBack)
dType() but it can also return the source of the DType
and the ixDTmdl especially for debugging.
dType() and also in the text of explainDTypeIx().cDtBack - null or char[1], then sets the source of the DType. Set to:ixDTmdlBack - null or int[1], then returns the read ixDTmdlFBlock_FBcl.mdl is given, the effective DType resolved via module.DType_FBcl.DtIxmdl getDTypeIxMdl()
FBlock_FBcl.dTypes.
see Din_FBclpublic DType_FBcl.DtIxmdl dTypeIxMdl()
FBlock_FBcl.dTypes.
It is asserted here that FBtype_FBcl.isCompleted. That is true while DTypePropgPrc_FBcl runs.
For the Module_FBcl.fbmdlPins it is not true in that time, but for module pins
the given DinoutType_FBcl#ixDtype is equal to the expected ixDTmdl, it is used to return the proper DType_FBcl.DtIxmdl.
TODO this is again carefully think about.public final DType_FBcl.DtIxmdl XXXdTypeIxMdl()
dTypeCix(char[], int[])
but meanwhile too complex or faulty (TODO think about).dTypeCix(char[], int[])
which may be derived on dTypeCix(char[], int[])
or also dTypeCix(char[], int[]).public final DType_FBcl dType(java.lang.String sElement, Module_FBcl mdl)
FBlock_FBcl.dTypes.
or it is the non specified type stored in FBtype_FBcl.dTypesType if FBlock..dTypes is not set.
It is null if the type is yet not set.sElement - The access string to an element of a maybe given array or structure.
If null, the original DType_FBcl is returned.
If not null, then the array type is derived to its element type
or the structure type is derived to the type of the element.
Last one is proper for complex types with '.re' and '.im' but not yet for any structures.
This may be done later in future by evaluating the FBtype_FBcl description to the structure.
An element is a pin of this FBtype.public char dTypeChar()
DTypeBase_FBcl.typeChar especially for code generation.
It calls dType() which is derived for dType(), dType(),
dType() to get the real determined DType_FBcl for inputs and expression inputs,
see there.
Then it calls DType_FBcl.dtBase() and gets the DTypeBase_FBcl.typeChar.public static java.lang.String explainDTypeIx()
public java.lang.CharSequence sDTypeIx()
public java.lang.CharSequence sDTypeIxId()
DType_FBcl.instanceIdpublic java.lang.CharSequence sDTypeIx(int bitsWhat)
DType_FBcl of this pin
including the ixDTfb and ixDTmdl from the FBlock_FBcl tables.
It writes:
explainDTypeIx()
bitsWhat - control what to writepublic boolean isComplexDType()
public java.lang.String dtypeCpp(char what)
public java.lang.String dtArrayCpp()
public java.lang.String setDType(DType_FBcl.DtIxmdl dtixSrc, LogMessage log)
FBlock_FBcl.dTypes due to the given ixDTfb in DinoutType_FBcl.dType.
DType_FBcl.DtIxfb.ixFB() is <0, then the Dtype cannot be changed.
But it is tested whether it is the same. Then nothing is done.
Pin_FBcl.fb has a FBlock_FBcl.sizeArrayFB.
If it is so, this sizeArray is added to the given 'dtixSrc'.
#dType2() is already the same as src argument, then nothing is done.
This is for dedicated matching dTypes.
#dType2() is not the same, but the dType of the DinoutType_FBcl.dType() is not flexible,
it means the DinoutType_FBcl#ixDtype is -1, then returns the error message.
#dType2() is not the same, then but it is able to change,
then FBlock_FBcl#setDtype(int, DType_FBcl) is called.
This operation checks the given DinoutType_FBcl.dType() for compatibility
and sets, if possible, the given DType_FBcl in src in the FBlock_FBcl.dTypes array
valid for this pin, but also adusts all depending DTypes in FBlock_FBcl.dTypes.
FBlock_FBcl#setDtype(int, DType_FBcl), then there also an error message is returned.dtixSrc - any given Data Type.Pin_FBcl.nameFBpin().public java.lang.String getSteptimeStr()
public SteptimeRef_FBcl getSteptime()
private void setSteptimeToOtherCon(Pin_FBcl[] thiscon, DinoutType_FBcl[] typecon, SteptimeRef_FBcl steptimeType)
public void propagateSteptime(SteptimeRef_FBcl steptime)