SaltyPaws / calculator_pi

This is a light weight yet powerful calculator plugin for OpenCPN. Would you like to know your hull speed?
4 stars 7 forks source link

Changes to version 1.6

Added Willson Fetch Equation Added wind speed to Beaufort equation Changed to MuParser math interface Added History pulldown box, improved history box behaviour Added reporting modes (1000 separator, SI prefixes, accuracy) Added function button in OpenCPN toolbar, with option to switch off from plugin settings Minor tweaks and fixes

Calculator Plugin for OpenCPN by SaltyPaws aka Walbert Schulpen

This is a light weight yet powerful calculator plugin for OpenCPN. Would you like to know your hull speed?

Key features are:

Adding formulas is easy. If your favorite nautical equation is missing, please let me know your equation via flyspray, and I will add it.

Help

Type help in the calculator to get these instructions.

Examples of expression that work in the calculator are: (comments are in brackets, some results depend on other example calculations):

Hull speed: LWL=48 (water line lenght in feet) vhull=1.34*LWL^(1/2) (hull speed in knots)

Conversions: ftm=0.3048 (feet to meters) km_to_nm=0.539957 (Kilometers to nautical Mile) ftm*LWL (waterline length in meters)

Distance to horizon R=6378.11000 (Radius of the earth in m) H=2.5 (Height of the eye above sea-level in m) d = R acos(R/(R + h)) (Distance to horizon in m)
ans*km_to_nm (Distance to horizon in nm)

Distance to lighthouse H1=200 (height of lighthouse in m) d1 = R*acos(R/(R + H1)) (Distance to horizon in m) distance=d1+d (visibility range of lighthouse in m)

Built-in functions

The following table gives an overview of the functions supported by the default implementation. It lists the function names, the number of arguments and a brief description. Name Argc. Explanation sin 1 sine function cos 1 cosine function tan 1 tangens function asin 1 arcus sine function acos 1 arcus cosine function atan 1 arcus tangens function sinh 1 hyperbolic sine function cosh 1 hyperbolic cosine tanh 1 hyperbolic tangens function asinh 1 hyperbolic arcus sine function acosh 1 hyperbolic arcus tangens function atanh 1 hyperbolic arcur tangens function log2 1 logarithm to the base 2 log10 1 logarithm to the base 10 log 1 logarithm to the base 10 ln 1 logarithm to base e (2.71828...) exp 1 e raised to the power of x sqrt 1 square root of a value sign 1 sign function -1 if x<0; 1 if x>0 rint 1 round to nearest integer abs 1 absolute value min var. min of all arguments max var. max of all arguments sum var. sum of all arguments avg var. mean value of all arguments

Built-in binary operators

The following table lists the default binary operators supported by the parser. Operator Meaning Priority = assignement -1 && logical and 1 || logical or 2 <= less or equal 4

= greater or equal 4 != not equal 4 == equal 4 greater than 4 < less than 4

  • addition 5
  • subtraction 5
  • multiplication 6 / division 6 ^ raise x to the power of y 7 *The assignment operator is special since it changes one of its arguments and can only by applied to variables. Other operators

muParser has built in support for the if then else operator. It uses lazy evaluation in order to make sure only the necessary branch of the expression is evaluated. Operator Meaning Remarks ?: if then else operator C++ style syntax

Variables: pi, e ans is the result of the previous calulation dtr is the conversion factor from degrees to radians
you can define your own variables (e.g. myvariable=10/8cos(dtr90) or yourvariable=ans) clear removes results in the history, but leaves your defined variables in tact

User Interface - type these commands in the command window: history - Toggle the history panel showhelp - Show/Hide the Help button showcalculate - Show/Hide the Calculate button showhistory - Show/Hide the history toggle help - show the help menu

Settings/Plugins/Preferences: Show/Hide Calculate, Help and History toggle buttons History Settings: max Results -this is the number of results that will be stored in the history pulldown. The history pulldown will contain five times this value Log to opencpn: Enable/Disable logging of results to opencpn logfile.

Other: Error handling supported MuParser has been compiled with C++ Double for internal precision.

Compiling

You have to be able to compile OpenCPN itself - Get the info at http://opencpn.org/ocpn/developers_manual

Build out of OpenCPN branch!

in folder calculator_pi

After using wxformbuilder to modify the interface, use degreefix.sh, to facillitate the windows build. When updating the Excel file with formulas and conversions, convert to cpp code by running the supplied perl script

Executables

Compiled library files can be downloaded/uploaded here. https://sourceforge.net/projects/opencpnplugins/

License

The plugin is licensed under the terms of GPL v2 or, at your will, later. The MuParser files are by Ingo Berg and is open source. For full licence, please see the muparser source files.