//----------------------------------------------------------------------------------------------------------------------
// setup requirements/limitations / about
//
//       feature aboutVisit dynamic text with escape sequences
//       - %lang%        -- inserts the lower case short name of the chosen language: en de ...
//       - %LANG%        -- inserts the upper case short name of the chosen language: EN DE ...
//       - %var:name:%   -- inserts the numeric value of the variable called name
//
softwareVersion=3.03.67                // minimum required "exe" to work with these settings

copyright= "(c) 2005-2024    UniTek Industrie Elektronik GmbH"

aboutBuildID= "   1.3.03.26w41.019"

aboutIcon=logo.bmp

aboutVisit="\n- Homepage\t https://www.unitek-industrie-elektronik.de"
aboutVisit+="\n- Download\t https://www.unitek-industrie-elektronik.de/downloads"
//aboutVisit+="\n- Manual  \t https://www.unitek-industrie-elektronik.de/wp-content/uploads/NDrive_%LANG%.pdf"
//aboutVisit+="\n- PDF     \t https://www.unitek-industrie-elektronik.de/wp-content/uploads/NDrive_%LANG%.pdf"
//aboutVisit+="\n- Lang    \t before_%lang%_after"
//aboutVisit+="\n- Var     \t before_%var:tApp:%_after"


showVersionInTitle=0
title=NDrive Utility Software          // to override "versionites" in displaying title
//iniFile=NDrive.ini                   // to override NDrive.ini for cosmetic reasons/multiple variant parallel versions
//logFile=NDrive.log                   //           & NDrive.log


//----------------------------------------------------------------------------------------------------------------------
// initial expectations
//
defaultFirmware=482                    // set "look" if not connected, and no seeding osci file available
defaultLanguage=en;de                  // expected
defaultBaudrate=115200                 // default if no setting in iniFile found


//----------------------------------------------------------------------------------------------------------------------
// COMReadRequestEOL           - defaults to ""
//                             -- ""  : read command terminal charactor remains "X"  (3D00rrX)
//
//                             -- "R" : read command terminal charactor becomes "R"  (3D00rrR)
//                                      reduces read, corrupted along the serial connection, becoming a write command 1D / 2D etc.
//                             ---       on connecting to a COM port, 10 attempts are made to read REGID_KERN_VERSION
//                             ----       the first 2 attempts will be made with 3d001bR instead of 3d001bX
//                             ----       if 1 of these succeeds (the drive firmware accepts this format)
//                             -----       R will be used instead of X for ALL read commands while connected to the drive
//                             ----       if these 2 attempts fail then (the drive firmware does NOT accept this format)
//                             -----       X will be used for the next attempts and ALL read commands while connected to the drive
//                             ----       during the two 'R' attempts and the first 'X' attempt
//                             -----       a timeout will probably occur if the drive firmware does not support 'R' (tested only 4.24)
//                             -----       a timeout may occur on first switch back to 'X' if the drive firmware does not support 'R' (tested only 4.24)
//                             ------       the firmware may have to resync somehow
//                             -----       ERRORs are still added to NDRive.log for debug inspection as needed (eg timeout, see below)
//                             -----       ERRORs are NOT added to the global ERROR or WARN list
//                             ------       the automatic popup of the "Menu Info" window due to added ERROR/WARN is thus prevented
//                             -----       on failure to read a response from the drive
//                             ------       the low level COM timeout error count is zeroed and COM error message is reset
//
COMReadRequestEOL=""


//----------------------------------------------------------------------------------------------------------------------
// adjusting  some COMxxx CANxxx settings
//
COMFair=1                              // enables the fair and/or priority access of threads to COM register transfers
COMFlushAfterWrite=0                   // forces a flush file command after writing data to the COM port
COMFlushBeforeCommand=1                // test for unexpected read data left over from previous command   (default:   0)
COMReadTimeout=200                     // maximum delay  in ms   before a reply fail                      (default: 200)
COMReadTimeoutPerChar=5                // extra timeout  in ms   for each expected char from drive        (default:   5)
COMWaitCommand=0                       // waits (sleeps) in ms   before sending each command to the drive
COMWaitReply=5                         // waits (sleeps) in ms   before reading a reply from the drive

COMStopBits=1                          // number of tx stop bits, if 2 TWOSTOPBITS otherwise ONESTOPBIT   (default:   2)


CANFlushBeforeCommand=1                // test for unexpected read data left over from previous command   (default:   0)
CANReadTimeout=100                     // maximum delay  in ms   before a reply fail                      (default: 200)
CANReadTimeoutPerWord=5.0              // extra timeout  in ms   for each expected message from drive     (default: 5.0)
CANWaitCommand=0                       // waits (sleeps) in ms   before sending each command to the drive (default:  20)
CANWaitReply=5                         // waits (sleeps) in ms   before reading a reply from the drive    (default:   0)


refreshPageAfterConnect=false          // after (re)-connecting force the current page to be "refreshed"  (default: true)
                                       // possible workaround for some fields being hidden after connection

sleepGranularity=2
preventPCEnergySaving=1


//----------------------------------------------------------------------------------------------------------------------
// afterClosePortMode         - defaults to 0
//                                           allows the user to save registers even after disconnecting due to an error and/or menu offline
//
//                            - if non-zero: a cache is made of all accessed RegIDs during connection (COM or CAN)
//                                           all other RW's for this FW (defined regid.txt), will be read and added to the cache
//                                           these cached RegIDs are updated by any change by a GUI or state machine
//                            - on going offline and a delay (circa 5sec)
//                                           if closed due to error   digit=  setting%10
//                                           otherwise                digit= (setting/10)%10
//                            -- if resultant digit is 1
//                                           an internal "View File..." starts without the file dialog but with the cached values
//                                           the title bar filename is set to the fixed name translateString("after close unsaved")
//                                           the user can edit register values if required
//                                           the user can use the "Save Registers" dialog to save registers values to a file
//                                           remains in "File is shown." state until the user presses offline, connect or view file again
//                            -- if resultant digit is 2
//                                           an internal "View File..." starts without the file dialog but with the cached values
//                                           the title bar filename is set to the fixed name translateString("after close unsaved")
//                                           the "Save Registers" dialog is opened for the user
//                                           remains in "File is shown." state until the user presses offline, connect or view file again
//                            -- if resultant digit is 3
//                                           an internal "View File..." starts without the file dialog but with the cached values
//                                           the title bar filename is set to the fixed name translateString("after close unsaved")
//                                           the register values are saved, without dialog, into a file translateString("after close save")
//                                                              wxString name= translateString("after close save");
//                                                              if (name.CmpNoCase("lastused")==0)
//                                                                      name= NDriveSettings::getRegisterDataFilename();
//                                                              wxFileName filename(NDriveSettings::getRegisterDataDirectory(), name);
//                                           remains in "File is shown." state until the user presses offline, connect or view file again
//

//afterClosePortMode=0

afterClosePortMode=11
//                        resultant   on error 1    otherwise  1

translation="after close unsaved"="Closed_Backup"
translation="after close save"="Panic_Backup"


//----------------------------------------------------------------------------------------------------------------------
// comboExtraDroppedWidth      - defaults to 5
//                             --  0 : original non-adaptive scaling
//                             -- >0: the "minimum allowable width" of the selection list for a drop down is set as follows:
//                                 min= largest width from all strings + comboExtraDroppedWidth + system scroll bar width
//                             ---  windows will use the maximum of this "minimum allowable width" and the width of the
//                                  drop down button when it pops up the selection list
comboExtraDroppedWidth= 5


//----------------------------------------------------------------------------------------------------------------------
// translateStringMode         - defaults to 0
//                             -- 0: standard language translation
//                             -- 1: no translation at all
//                             -- 2: standard language translation followed by escape sequence translation (eg HTML)
translateStringMode=2


//----------------------------------------------------------------------------------------------------------------------
// progressInit                - defaults to false (0), backward compatible
//                             -- 1: during the app initialisation (first appears AFTER parsing all the settings.txt files)
//
// progressConnect             - defaults to false (0), backward compatible
//                             -- 1: show a progress bar during COM/CAN connection
//
// progressWithText            - defaults to false (0), backward compatible
//                             -- 1: a text is displayed under the progress bar for feedback
//                                   takes style parameters from GUIpara=dialogBox
//                                   common for both for "Init Progress" and "Connect Progress"
progressInit=1
progressConnect=1

progressWithText=1


//----------------------------------------------------------------------------------------------------------------------
// messageBoxDialog            - defaults to 0, backward compatible
//                             0: always use the  "modal"(application-blocking) dialog
//                             1: question popups "modal"(application-blocking) dialog,
//                                otherwise "non modal" parallel dialog
//                             2: always use the  "non modal" (non-application-blocking) parallel dialog
messageBoxDialog=2


//----------------------------------------------------------------------------------------------------------------------
// directory structure / access
//
// imagesPath=...                                   relative paths of all image subdirectories    (needs termination "\")
// languagePath=...                                 relative intermediate path befoe en\ de\ etc. (needs termination "\")
// languageFilePrefix=NDrive;Shared;User;HKx        last in list takes precedence                 (separator         ";")
//
languagePath=languages\                            // subdirectories use 2-char language code     .mo files without lang. code

//languageFilePrefix=NDrive;Shared;User            // reduce/extend    NDrive;Shared     NDrive;Shared;User
languageFilePrefix=NDrive;Shared                   // reduce/extend    NDrive;Shared     NDrive;Shared;User

imagesPath=images\unitek\;images\;images\pictograms\;images\leds\;images\guages\;images\logos\;images\messageBox\


//----------------------------------------------------------------------------------------------------------------------
// versionRegisterFile         - defaults to 1.0
//                             1.0: original version (older NDrive's will produce an error box on reading any other version)
//                             1.1: each entry has a regid size value type as a single byte
versionRegisterFile=1.1

translation="Register File (*.urf)|*.urf"="Register File (*.urf)|*.urf|Register File (*.txt)|*.txt"


//----------------------------------------------------------------------------------------------------------------------
// browserMode                 - defaults to 0, backward compatible
//                             -- 0: if (wxURL(url).IsOk()) wxLaunchDefaultBrowser(url)
//                             -- 1: wxLaunchDefaultBrowser(url)
//                             -- 2: doViewFileInBrowser(url) as a workaround
//                             -- 3: disables following of links
browserMode=1


//----------------------------------------------------------------------------------------------------------------------
// helpMenuMode                - default to 0  - generates the top menu->Help as follows
//                             -- 0: Manual\tF1            1: Manual\tF1            2: Manuals  >--sub-menu--> Manual\tF1
//                                   &About...                Se&lect man...           &About...               Se&lect man...
//                                   &Info...                 &Online man...           &Info...                &Online man...
//                                   ---------                ---------                ---------
//                                   Change Language...       &About...                Change Language...
//                                                            &Info...
//                                                            ---------
//                                                           Change Language...
//
// helpMenuFolderMode          - default to 0  - adds (replaces) new entry the top menu->Help as follows
//                             -- 0: no change
//                             -- 1: replaces the "Se&lect man..." item with the "&Folder man..." item
//                             -- 2: adds after   "Se&lect man..." item      the "&Folder man..." item
//
//                             --- Manual\tF1    : opens the file directly helpPath+helpFilePrefix+lang+helpFileExtension
//                                                 for the chosen lang, retries with "en" if lang fails
//                             --- Se&lect man...: opens the folder helpPath as a windows file dialog to select a file
//                             --- &Folder man...: opens the folder helpPath (usually explorer)
//                             --- &Online man...: follows the link generated by helpOnline
helpMenuMode=1
helpMenuFolderMode=1

helpPath=manuals\
helpFileExtension=".pdf"
helpFilePrefix="NDrive_"                    // "NDrive_user_"   "NDrive_XXXX_"  etc.

helpOnline="https://www.unitek-industrie-elektronik.de/wp-content/uploads/NDrive_%LANG%.pdf"

//----------------------------------------------------------------------------------------------------------------------
// menuExtras                  - default to 0  - nothing added
//                             - non zero      - adds a new entry called translateString("Extras") to the top menu bar
//                             -- 1: before File
//                             -- 2: before Communication
//                             -- 3: before Help
//                             -- 4: after  Help
//                             - this can be used for a place to hook the kicking of state machine states via action field menuMachine
menuExtras=3


//----------------------------------------------------------------------------------------------------------------------
// Send Settings extra         - defaults to false (0), backward compatible
//                             1: appends the translated about text to the email message text
emailAbout=0

emailRecipient="developmenmt@unitek.eu"


//----------------------------------------------------------------------------------------------------------------------
// bitListTooltip              - default 0   - as bit values (can be or'ed together)
//                             -- 0x01   tooltip shown when hovering over the LED
//                             -- 0x02   tooltip shown when hovering over the text
bitListTooltip=0x03


//----------------------------------------------------------------------------------------------------------------------
pageOrder= Home,Settings,Logic,Position,Speed,BUS,Monitor,Device,Diagnostic,Oszilloskop,Extra
pageOrder= defined

homeURLClick= 0,0,0,0
startPage= "Settings"


//----------------------------------------------------------------------------------------------------------------------
// oscilloscope settings / access
//

translation="Oscilloscope File (*.uof)|*.uof"="Oscilloscope File (*.uof)|*.uof|Oscilloscope File (*.txt)|*.txt"

startupOscilloscopeFile=lastused;settings\UniTek_default.uof       // 1st try lastused (in "ini"), otherwise use default

outputFilesFolder=  outputfiles\                                   // relative (our preferred)
//outputFilesFolder=c:\outputfiles\                                // absolute e.g. c:\somewhere\else\for\files\

osciCSVSep=";"
osciCSVDecimal=",."
osciCSVTimestamp="Time"                          // apply Timestamp Column Header to osci CSV file

osciCaptureChunk=32            //=50 default     // captures per chunck,  smaller reduces variance of other transfers (stepGen, readOnly, status)


//----------------------------------------------------------------------------------------------------------------------
// osciCaptureCombos           - defaults to false (0), backward compatible
//                             --    applies to drop down changes (mode, timescale etc.) while capturing
//                             -- 1: forces an internal "stop" followed by "run"
osciCaptureCombos=1

osciCaptureCombos=1	//=0 default	//allow drop down changes (mode, timescale etc.) while capturing,   forces internal "stop" then "run"

//----------------------------------------------------------------------------------------------------------------------
// oscilloScaleChannelMode     - defaults to 0
//                             - changes to pos and/or unit/div of a channel keeps the display position constant
//                               for that channel at the reference marker set by the LEFT mouse button
//
variable= oscilloScaleChannelMode= 0x00          // initial value to off


//----------------------------------------------------------------------------------------------------------------------
// osciScaleXValues            - defaults to empty for backward compatability
//                             - allows the osci scaling in the x (time) axis to go below 1.0
//
osciScaleXValues=1

//-- by default and if possible oscillo values are captured at 50values/100pixel time division
//--- the firmware "skip" value is chosen
//--- the ndrive software "xstep" is calculated to represent the time between captured values
//-- at low timescale values there may be fewer values captured per time division
//--- have to scroll the time axis to see the values
//-- by allowing scaleX values of less than 1.0
//--- can get more points drawn with less "space" between them
//--- no loss of information
//--- less scrolling of the time axis needed
//-- osciScaleXValues allows one or more extra scaleX values (x1 x2 x3 are fixed) to become available
//--- separated by a ;
//--- in increasing value
//--- each value is either a floating point number (eg 0.75) or a fixed number of pixels (eg px2)
//--- osciScaleXValues="px1;px2;px4;px8" has been tested to be the most useful
//--- the oscillo detects the possible values dynamically
//---- prevents going below 1pixel per captured value
//---- skips duplicate scaleX values
//---- skips increasing scaleX values on scale X minus
//---- disables the plus/minus button appropriately


//----------------------------------------------------------------------------------------------------------------------
// osciMouseLeftDragToler      - defaults to disabled (0) for backward compatability
//                             - oscillo graph dragging starts when the mouse left button is down and moved by more than this value (pixels)
//
osciMouseLeftDragToler=10


//----------------------------------------------------------------------------------------------------------------------
// some predefining default conditions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  ossPsel                    - seeding for (osci) parameter expansion dropdown (must be valid)
//                             -- 0 (as default)     shows -off-
//                             -- 1                  set initial dropdown very sensitive to .po & .csv
//
//  CrdFBstyle                 - style for feedback selection
//                             -- 0 single list
//                             -- 1 preselected lists depending on PCB HW Variants
//
variable= canFlgX=1                              // display canFlags from "device" on "bus" page
variable= oscPsel=1                              // do not change
variable= CrdFBstyle=1

variable= psDisp=1                               // seed index for (user) IMD psu


//----------------------------------------------------------------------------------------------------------------------
