Skip to main content

valueIsPositive

Short summary

This assertion method checks if the current value is positve

Attention: Any comparsion to NaN is FALSE that means if currentValue is NaN then is the assertion false. For details check IEEE 754_.

Attention: currentValue has the value infinity means the assertion is true. currentValue has the value -infinity means the assertion is false. currentValue has the +0.0 means the assertion is true. currentValue has the value -0.0 means the assertion is false. For details check IEEE 754.

Parameters

NameTypeCommentKind
currentValueREALcurrent value to checkinput
messageAssertMessagemessage if the assertion is falseinput

Code

Declaration

METHOD valueIsPositive
VAR_INPUT
(* current value to check *)
currentValue :REAL;
(* message if the assertion is false *)
message :AssertMessage;
END_VAR
VAR
(* just to cast ``currentValue`` *)
currentValueAsDWord :POINTER TO DWORD;
END_VAR

Implementation

IF (THIS^.isValueNaN(currentValue)) THEN	
THIS^.assertionWasWrong(message, THIS^.getDebugInfo('valueIsPositive'));
ELSE
currentValueAsDWord := ADR(currentValue);
IF ((currentValueAsDWord^ AND THIS^.MASK_FOR_SIGN_BIT) = THIS^.MASK_FOR_SIGN_BIT) THEN
THIS^.assertionWasWrong(message, THIS^.getDebugInfo('valueIsPositive'));
END_IF
END_IF