RE: bool -- the reason you would use an integer # here is that that's how the dll (likely) also stores it. It's been a while but if memory serves, a "bool" is usually the same size as an "int" which is in turn likely to be 32-bits. A typical convention is 0<-->False, 1<-->True. But I think any non-zero value should also map to True.
RE: NaN constant -- you can also just type "NaN" into a floating point constant or control.
ObTip: sometimes I use NaN's as default values for controls in certain subvi's. Then the subvi can detect when an input was left unwired and substitute whatever value it chooses at its own discretion. The usefulness is that 'discretion' can include more than just a constant -- it could query a value from a queue or functional global or something.
-Kevin P.
ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.