Package org.harctoolbox.irp
Class FiniteBitField
java.lang.Object
org.harctoolbox.irp.IrpObject
org.harctoolbox.irp.BitField
org.harctoolbox.irp.FiniteBitField
- All Implemented Interfaces:
Serializable,EquationSolving,IrStreamItem,Numerical,XmlExport
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intMax length of a BitField in this implementation. -
Constructor Summary
ConstructorsConstructorDescriptionFiniteBitField(long data, long width, long chop, boolean complement, boolean reverse) FiniteBitField(String str) FiniteBitField(String name, long width) FiniteBitField(String name, long width, boolean complement) -
Method Summary
Modifier and TypeMethodDescriptionallDurationsInMicros(GeneralSpec generalSpec, NameEngine nameEngine) Delivers a set of all the contained durations in microseconds.booleanconstant(NameEngine nameEngine) voidcreateParameterSpecs(ParameterSpecs parameterSpecs) voiddecode(RecognizeData recognizeData, List<BitSpec> bitSpecStack, boolean isLast) endingDurationType(DurationType last, boolean gapFlashBitSpecs) booleanvoidevaluate(RenderData renderData, List<BitSpec> bitSpecStack) extractPass(IrSignal.Pass pass, IrStream.PassExtractorState state) longgetWidth(NameEngine nameEngine) getWidth(RecognizeData recognizeData) guessParameterLength(String name) Tries to infer the bit-length of the parameter with name as the argument.inthashCode()booleaninterleavingOk(DurationType last, boolean gapFlashBitSpecs) booleaninterleavingOk(DurationType toCheck, DurationType last, boolean gapFlashBitSpecs) invert(BitwiseParameter rhs, RecognizeData recognizeData) static FiniteBitFieldbooleanComputes the number of encoded bits, which may differ from the number of payload bits, in the case of redundancy.Upper limit of the number of (interleaving) durations in the rendered signal.propertiesMap(boolean eval, GeneralSpec generalSpec, NameEngine nameEngine) propertiesMap(GeneralSpec generalSpec, NameEngine nameEngine) voidrender(RenderData renderData, List<BitSpec> bitSpecs) static voidsetAllowLargeBitfields(boolean aAllowLargeBitfields) startingDuratingType(DurationType last, boolean gapFlashBitSpecs) substituteConstantVariables(Map<String, Long> constantVariables) Returns an IrStreamItem of the same type with all occurrences of the variables in the dictionary replaced by their values in the dictionary.toBinaryString(NameEngine nameEngine) toBinaryString(NameEngine nameEngine, boolean reverse) toBitwiseParameter(RecognizeData nameResolver) toIrpString(int radix) Returns a computed IRP (-segment) string representation of current IrpObject.static longtoLong(long data, long width, long chop, boolean complement, boolean reverse) longtoLong(NameEngine nameResolver) Produces a numerical result.toString(NameEngine nameEngine) intweight()Returns a (somewhat arbitrary) measure of the complexity of the object.Methods inherited from class org.harctoolbox.irp.BitField
getChop, getChop, getData, hasChop, hasExtent, isComplement, isEmpty, leftHandSide, microSeconds, newBitField, newBitField, newBitField, numberOfBareDurations, parse, toLongMethods inherited from class org.harctoolbox.irp.IrpObject
getParseTree, numberOfBitSpecs, numberOfInfiniteRepeats, prerender, propertiesMap, toDocument, toIrpString, toString, toString, toStringTree, toStringTree, toTreeViewer, toTreeViewer, toTreeViewer, updateStateWhenEntering, updateStateWhenExitingMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.harctoolbox.irp.IrStreamItem
hasExtent, isEmpty, microSeconds, numberOfBareDurations, numberOfBitSpecs, numberOfInfiniteRepeats, propertiesMap, updateStateWhenEntering, updateStateWhenExitingMethods inherited from interface org.harctoolbox.xml.XmlExport
toDocument
-
Field Details
-
MAXWIDTH
public static final int MAXWIDTHMax length of a BitField in this implementation.- See Also:
-
-
Constructor Details
-
FiniteBitField
-
FiniteBitField
- Throws:
InvalidNameException
-
FiniteBitField
- Throws:
InvalidNameException
-
FiniteBitField
public FiniteBitField(long data, long width, long chop, boolean complement, boolean reverse) throws InvalidNameException - Throws:
InvalidNameException
-
FiniteBitField
-
-
Method Details
-
newFiniteBitField
-
setAllowLargeBitfields
public static void setAllowLargeBitfields(boolean aAllowLargeBitfields) - Parameters:
aAllowLargeBitfields- the allowLargeBitfields to set
-
toLong
public static long toLong(long data, long width, long chop, boolean complement, boolean reverse) -
substituteConstantVariables
Description copied from interface:IrStreamItemReturns an IrStreamItem of the same type with all occurrences of the variables in the dictionary replaced by their values in the dictionary. Does not change the containing object. May return the object itself, or share sub-objects with it.- Specified by:
substituteConstantVariablesin interfaceIrStreamItem- Specified by:
substituteConstantVariablesin classBitField- Parameters:
constantVariables- Map<String, Long> of variables to replace.- Returns:
- IrStreamItem of the same type.
-
equals
-
hashCode
public int hashCode() -
toLong
Description copied from interface:NumericalProduces a numerical result.- Specified by:
toLongin interfaceNumerical- Parameters:
nameResolver- used to resolve names in expressions.- Returns:
- result, long.
- Throws:
NameUnassignedException
-
toBitwiseParameter
- Specified by:
toBitwiseParameterin interfaceNumerical
-
toBinaryString
- Throws:
NameUnassignedException
-
toBinaryString
- Throws:
NameUnassignedException
-
getWidth
- Specified by:
getWidthin classBitField- Throws:
NameUnassignedException
-
getWidth
-
toString
-
toIrpString
Description copied from class:IrpObjectReturns a computed IRP (-segment) string representation of current IrpObject. Numerical parameters, but not durations etc, will be printed using the radix in the argument.- Specified by:
toIrpStringin interfaceIrStreamItem- Specified by:
toIrpStringin classIrpObject- Parameters:
radix- Radix for parameters.- Returns:
- Formatted string.
-
render
- Specified by:
renderin interfaceIrStreamItem- Throws:
NameUnassignedException
-
evaluate
public void evaluate(RenderData renderData, List<BitSpec> bitSpecStack) throws NameUnassignedException - Specified by:
evaluatein interfaceIrStreamItem- Throws:
NameUnassignedException
-
extractPass
- Specified by:
extractPassin interfaceIrStreamItem
-
toElement
-
numberOfBits
Description copied from interface:IrStreamItemComputes the number of encoded bits, which may differ from the number of payload bits, in the case of redundancy.- Specified by:
numberOfBitsin interfaceIrStreamItem- Overrides:
numberOfBitsin classIrpObject- Returns:
-
decode
public void decode(RecognizeData recognizeData, List<BitSpec> bitSpecStack, boolean isLast) throws SignalRecognitionException - Specified by:
decodein interfaceIrStreamItem- Throws:
SignalRecognitionException
-
invert
public BitwiseParameter invert(BitwiseParameter rhs, RecognizeData recognizeData) throws NameUnassignedException - Specified by:
invertin interfaceEquationSolving- Specified by:
invertin classBitField- Throws:
NameUnassignedException
-
interleavingOk
- Specified by:
interleavingOkin interfaceIrStreamItem- Parameters:
last-gapFlashBitSpecs-- Returns:
-
interleavingOk
- Specified by:
interleavingOkin interfaceIrStreamItem
-
endingDurationType
- Specified by:
endingDurationTypein interfaceIrStreamItem
-
startingDuratingType
- Specified by:
startingDuratingTypein interfaceIrStreamItem
-
weight
public int weight()Description copied from class:IrpObjectReturns a (somewhat arbitrary) measure of the complexity of the object. Can be used for determining if a decode is "simpler" than another decode.- Specified by:
weightin interfaceIrStreamItem- Overrides:
weightin classBitField- Returns:
- non-negative integer.
-
assignmentVariables
- Specified by:
assignmentVariablesin interfaceIrStreamItem
-
propertiesMap
- Specified by:
propertiesMapin interfaceIrStreamItem
-
propertiesMap
public Map<String,Object> propertiesMap(boolean eval, GeneralSpec generalSpec, NameEngine nameEngine) - Overrides:
propertiesMapin classBitField
-
numberOfDurations
Description copied from interface:IrStreamItemUpper limit of the number of (interleaving) durations in the rendered signal. Only intended to be used on intro/repeat/ending IrStreams.- Specified by:
numberOfDurationsin interfaceIrStreamItem- Returns:
- number of durations (not necessarily interleaving), or null if not possible to determine.
-
nonConstantBitFieldLength
public boolean nonConstantBitFieldLength()- Specified by:
nonConstantBitFieldLengthin interfaceIrStreamItem
-
guessParameterLength
Description copied from interface:IrStreamItemTries to infer the bit-length of the parameter with name as the argument.- Specified by:
guessParameterLengthin interfaceIrStreamItem- Parameters:
name- Name of parameter sought.- Returns:
- length if success, null if failure.
-
allDurationsInMicros
Description copied from interface:IrStreamItemDelivers a set of all the contained durations in microseconds. Dumb, in that it does not consider consecutive flashes or consecutive gaps. Also, durations that cannot be statically computed may be omitted, as well as duration arising from extents.- Specified by:
allDurationsInMicrosin interfaceIrStreamItem- Parameters:
generalSpec-nameEngine-- Returns:
-
constant
- Specified by:
constantin interfaceIrStreamItem- Overrides:
constantin classBitField
-
createParameterSpecs
- Specified by:
createParameterSpecsin interfaceIrStreamItem- Overrides:
createParameterSpecsin classIrpObject- Throws:
InvalidNameException
-