Fri, 22 Sep 2017 10:57:57 +0300enable pylint checker
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 10:57:57 +0300] rev 1827
enable pylint checker

so far only print statement is checked

Fri, 22 Sep 2017 10:54:42 +0300fix usage of python2-only print statement
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 10:54:42 +0300] rev 1826
fix usage of python2-only print statement

Fri, 22 Sep 2017 10:52:44 +0300run python tests with non-english locale to catch bugs related to localization
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 10:52:44 +0300] rev 1825
run python tests with non-english locale to catch bugs related to localization

Thu, 21 Sep 2017 17:19:18 +0300make it possible to update XSD schema in project controller after new
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 17:19:18 +0300] rev 1824
make it possible to update XSD schema in project controller after new
target PLC is added or removed.

For example:


...
import targets
targets.targets["PLC"] = {"xsd": os.path.join(self.customBeremizPath, "PLCtarget", xsd),
"class": lambda: PLC_target,
"code": {"plc_PLC_main.c": os.path.join(self.customBeremizPath, "PLCtarget", "plc_PLC_main.c")}
}

from ProjectController import ProjectController, GetProjectControllerXSD
ProjectController.XSD = GetProjectControllerXSD()

Thu, 21 Sep 2017 16:06:51 +0300fix commit "lazy initialization of highlight pens and brushes
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 16:06:51 +0300] rev 1823
fix commit "lazy initialization of highlight pens and brushes
for DebugVariableViewer" (5562f34f)

Thu, 21 Sep 2017 15:04:15 +0300clean build example project after running test
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 15:04:15 +0300] rev 1822
clean build example project after running test

Thu, 21 Sep 2017 15:02:36 +0300fix problem if DataTypeEditor was imported before localization is
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 15:02:36 +0300] rev 1821
fix problem if DataTypeEditor was imported before localization is
loaded

That doesn't affect systems with english locales.

Sat, 16 Sep 2017 21:26:17 +0300add shell script to run all python tests and automatically handle Xvfb
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:26:17 +0300] rev 1820
add shell script to run all python tests and automatically handle Xvfb

Sat, 16 Sep 2017 21:24:22 +0300add PLCOpenEditor tests
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:24:22 +0300] rev 1819
add PLCOpenEditor tests

Sat, 16 Sep 2017 21:22:53 +0300run application tests in full screen mode
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:22:53 +0300] rev 1818
run application tests in full screen mode

Sat, 16 Sep 2017 21:22:06 +0300clean sys.argv, because if test is running from pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:22:06 +0300] rev 1817
clean sys.argv, because if test is running from pytest
sys.argv contains string "pytest --timeout 0 ./tests/tools"
Beremiz application parses it and throws exception.

Sat, 16 Sep 2017 21:19:19 +0300rework Beremiz application "testCheckProject" test to allow easier reuse later
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:19:19 +0300] rev 1816
rework Beremiz application "testCheckProject" test to allow easier reuse later

Sat, 16 Sep 2017 21:04:34 +0300add application name for PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:04:34 +0300] rev 1815
add application name for PLCOpenEditor

This is needed to work user configuration load/store, if PLCOpenEditor
is launched from test environment.

Fri, 15 Sep 2017 20:30:24 +0300rewrite PLCOpenEditor. Add PLCOpenEditorApp class for easier customizations.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:30:24 +0300] rev 1814
rewrite PLCOpenEditor. Add PLCOpenEditorApp class for easier customizations.

Fri, 15 Sep 2017 20:28:54 +0300lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:28:54 +0300] rev 1813
lazy locale initialization

wx.Locale() can't be called without wx.App. So don't call it at
import. It makes PLCOpenEditor simpler.

Fri, 15 Sep 2017 20:05:41 +0300use CustomIntCtrl instead of wx.SpinCtrl because it doesn't support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:05:41 +0300] rev 1812
use CustomIntCtrl instead of wx.SpinCtrl because it doesn't support
long integer needed for UDINT, (U)LINT types.

This commit complements commit 74a3f4d "fix LINT and ULINT ranges".

Fri, 15 Sep 2017 20:01:21 +0300add custom TextCtrl allowed to enter long integer with bounds checking
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:01:21 +0300] rev 1811
add custom TextCtrl allowed to enter long integer with bounds checking

It's needed because wx.SpinCtrl supports only 'int' type. For UDINT
and (U)LINT long type is necessary.

Fri, 15 Sep 2017 19:53:49 +0300use pytest for testing
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:53:49 +0300] rev 1810
use pytest for testing

Fri, 15 Sep 2017 19:51:31 +0300run separate test on every project instead of one big long test all projects
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:51:31 +0300] rev 1809
run separate test on every project instead of one big long test all projects

Fri, 15 Sep 2017 19:45:41 +0300move configuration for test environment into separate file conftest.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:45:41 +0300] rev 1808
move configuration for test environment into separate file conftest.py

Fri, 15 Sep 2017 19:01:31 +0300lazy initialization of highlight pens and brushes for DebugVariableViewer
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:01:31 +0300] rev 1807
lazy initialization of highlight pens and brushes for DebugVariableViewer

Constructors wx.Pen() and wx.Brush() require wx.App to exist already.
That causes crash during import of the control,
because import is done before calling main application code.

Fri, 15 Sep 2017 18:57:20 +0300add '_' function to builtin dictionary at import time
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 18:57:20 +0300] rev 1806
add '_' function to builtin dictionary at import time

This allows to import many Beremiz python modules before calling
util.misc.InstallLocalRessources().

Fri, 15 Sep 2017 18:51:42 +0300remove builtin BMZ_DBG. It's not used.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 18:51:42 +0300] rev 1805
remove builtin BMZ_DBG. It's not used.

Wed, 13 Sep 2017 15:39:48 +0300update translation strings
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Sep 2017 15:39:48 +0300] rev 1804
update translation strings

Wed, 13 Sep 2017 15:35:43 +0300updated all existing translations
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Sep 2017 15:35:43 +0300] rev 1803
updated all existing translations
added new languages: Portuguese (Portugal), Italian, Hungarian,
Spanish and Bengali. See version.py for information about translators.

Wed, 13 Sep 2017 10:18:04 +0300fix LINT and ULINT ranges
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Sep 2017 10:18:04 +0300] rev 1802
fix LINT and ULINT ranges

Tue, 12 Sep 2017 18:32:13 +0300found installed Inkscape on Windows
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 18:32:13 +0300] rev 1801
found installed Inkscape on Windows

tested with Inkscape version 0.9 on Windows 7.

Tue, 12 Sep 2017 16:49:35 +0300make possible to turn off at compile time online debugging, logging
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 16:49:35 +0300] rev 1800
make possible to turn off at compile time online debugging, logging
and external sync functionality

Defines TARGET_DEBUG_DISABLE, TARGET_LOGGING_DISABLE, TARGET_EXT_SYNC_DISABLE
allow to use generated PLC code in low-cost microcontrollers,
integrate into external programs and so on.

main.c:
extern void __run(void);
int main(void)
{
for(;;) {
__run();
// sleep common_ticktime__ ns
// add common_ticktime__ ns to __CURRENT_TIME
}
return 0;
}

Compile for example for arm bare-metal:
../build$ arm-none-eabi-gcc \
-DTARGET_DEBUG_DISABLE -DTARGET_LOGGER_DISABLE
-DTARGET_EXT_SYNC_DISABLE \
-flto -ffunction-sections -fdata-sections -I../../../../matiec/lib/C \
*.c \
-nodefaultlibs --specs=nano.specs -Wl,--static -Wl,--gc-section -Wl,--start-group -lc -lm -lnosys -lgcc -Wl,--end-group

Tue, 12 Sep 2017 14:22:17 +0300make default caption for PouNameDialog translatable
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 14:22:17 +0300] rev 1799
make default caption for PouNameDialog translatable

Tue, 12 Sep 2017 14:18:50 +0300fix max value for UDINT and ULINT types
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 14:18:50 +0300] rev 1798
fix max value for UDINT and ULINT types