Commit Graph

90 Commits

Author SHA1 Message Date
Kirill Shumilov
f74bb0c966 feat(xod-project, xod-arduino): add record marker and generate record types automatically 2020-10-28 16:32:48 +03:00
Evgeny Kochetkov
8cda893346 feat(xod-arduino, stdlib, xod-client): introduce setImmediate 2020-10-20 14:31:55 +03:00
Evgeny Kochetkov
aeff4b2c71 fix(xod-arduino, stdlib): copy values bound to tweak-strings directly into buffers 2020-09-23 17:03:49 +03:00
Evgeny Kochetkov
7b2e122965 feat(xod-project, xod-arduino, xod-tabtest): introduce read-only types 2020-09-04 16:38:52 +03:00
Kirill Shumilov
2eb72f6d42 fix(xod-arduino): fix forward declaration of HardwareSerial for arduino:megaavr architecture 2020-08-04 12:55:24 +03:00
Max Danilin
c379f91111 Merge branch 'master' into graphics 2020-05-26 15:39:07 +03:00
Kirill Shumilov
15c8759e65 feat(xod-arduino): integrate tethering internet into handleTweaks 2020-05-14 18:44:35 +03:00
gabbapeople
5935f84639 feat(stdlib) : graphics 2020-03-30 13:25:18 +03:00
Evgeny Kochetkov
8584c674a7 revert “Introduce read only types” (#1930) 2020-02-18 13:51:42 +03:00
Evgeny Kochetkov
0880f41e25 tweak(xod-arduino): if no one uses pin’s dirtyness state, do not store it 2020-02-04 17:58:56 +03:00
Evgeny Kochetkov
37901f08ba fixup! feat(xod-arduino, stdlib): add evaluate_on_pin pragma 2020-01-31 19:21:10 +03:00
Evgeny Kochetkov
43140007af feat(xod-arduino): store dirtyness state only for linked outputs 2020-01-31 19:21:09 +03:00
Evgeny Kochetkov
37c2ec61b6 feat(xod-arduino, stdlib): add evaluate_on_pin pragma 2020-01-31 19:21:09 +03:00
Evgeny Kochetkov
32246d89df feat(xod-arduino stdlib): use evaluateTmpl in xod/gpio to check port validity at compile time 2019-12-27 17:10:34 +03:00
gabbapeople
79ab575649 feat-xcolor-type 2019-12-25 18:53:28 +03:00
Evgeny Kochetkov
e249774c09 feat(xod-arduino, xod-tabtest): do not store values for pulse inputs and outputs 2019-12-16 17:56:16 +03:00
Kirill Shumilov
ddddc650b7 fix(xod-arduino): mark implementation of placement new operator as weak to provide it for platforms that does not have an implementation 2019-12-06 19:20:26 +03:00
Evgeny Kochetkov
826d4a77b6 tweak(xod-arduino): improve error propagation through defer nodes
- adds a new API — isEarlyDeferPass, which clarifies defers implementation
- covers a few edge-cases such defer node surrounded by closed `gate`s etc
2019-10-07 18:10:00 +03:00
Evgeny Kochetkov
6fa641b4ef tweak(xod-arduino): mark nearest downstream catchers as dirty when error status changes
- this simlifies the code that makes catchers react to raised error
- guarantees that a catcher will react to error clearing
2019-10-01 15:14:18 +03:00
Evgeny Kochetkov
39dc57bf51 tweak(xod-arduino): clear errors from pulse outputs before evaluation instead of at the end of transaction 2019-10-01 12:34:52 +03:00
Evgeny Kochetkov
28c6f4bff8 fix(xod-arduino): fix a bug that allowed nodes with upstream errors to evaluate in some cases
Introduced in #1850
2019-10-01 12:34:52 +03:00
Evgeny Kochetkov
cd08afcc9c tweak(xod-arduino): change error clear conditions for value types
Value-type outputs keep errors until a node’s `evaluate` emits a new non-error value explicitly, not before each evaluate
2019-10-01 12:34:52 +03:00
Evgeny Kochetkov
f9faae5600 fix(xod-arduino): fix tweak nodes behaviour after #1850 2019-09-16 18:11:15 +03:00
Evgeny Kochetkov
8ada2569a8 perf(xod-arduino, xod-tabtest): optimize transaction state keeping
Closes #1832
2019-09-11 16:38:00 +03:00
Evgeny Kochetkov
db612eefdc fix(xod-arduino): do not store nodeId for error raisers
Closes #1833
2019-09-04 17:47:37 +03:00
Evgeny Kochetkov
07ce918835 tweak(xod-arduino): remove extra #if…endif guards from generated code 2019-07-15 13:32:15 +03:00
Evgeny Kochetkov
a9ea13a7b6 feat(xod-arduino, xod-tabtest, stdlib): change C++ API to raise errors from specific output instead of the whole node 2019-07-15 12:07:17 +03:00
Evgeny Kochetkov
5f6742e074 refactor(xod-arduino, xod-tabtest, stdlib): mark outputs as dirty when raising errors 2019-07-15 12:07:17 +03:00
Kirill Shumilov
19ce3988e5 feat(stdlib): replace ERR pulses with raising errors 2019-07-15 12:07:16 +03:00
Kirill Shumilov
c9b596dcf9 refactor(xod-arduino): call raiseError function without error code (1 by default) 2019-07-15 12:07:16 +03:00
Evgeny Kochetkov
ca20769730 chore(stdlib): remove nodes deprecated in 0.21.0 2019-06-06 21:22:23 +03:00
Evgeny Kochetkov
ed841dcd06 feat(xod-arduino): add C++ support for errors concept
- adds `raiseError(ctx)` and `getError<input_IN>(ctx) ` functions  to C++ API;
- adds `#pragma XOD error_catch` and `#pragma XOD error_raise`
- reports raised and cleared errors to serial in debug mode
2019-05-31 17:32:28 +03:00
Kirill Shumilov
027607849b chore(workspace): update all projects and libraries in workspace to use "slots" instead of legacy pixels in Position and Size properties of Nodes and Comments 2019-02-27 20:25:10 +03:00
Evgeny Kochetkov
cad589dd4e fix(stdlib): fix integer overflow in formatNumber on some platforms 2019-02-08 14:41:35 +03:00
Kirill Shumilov
e86332319f chore(fixtures): update fixtures 2019-02-06 16:37:33 +03:00
Evgeny Kochetkov
a2e921c792 feat(xod-arduino, stdlib): C++ implementation of tweak nodes 2019-02-06 12:40:09 +03:00
Kirill Shumilov
99ab6f0512 chore(workspace): update cpp fixtures 2019-02-01 13:47:27 +03:00
Kirill Shumilov
71c2f1f6d8 feat(xod-client, xod-arduino, xod-cloud-tabtest): make possible to compile simulation wasm and run it 2019-01-31 20:24:18 +03:00
Kirill Shumilov
e3ce3688a3 fix(xod/core): fix flip-flop node 2018-11-22 13:31:04 +03:00
Kirill Shumilov
602777c43e refactor(xod-arduino, workspace): replace platform-dependent dtostrf with dtoa and move shared formatters.cpp into cpplib directory and rename it 2018-11-15 20:28:16 +03:00
Evgeny Kochetkov
681eb75541 fix(xod-arduino): don't redefine dtostrf for STM32 boards 2018-11-06 16:50:37 +03:00
Evgeny Kochetkov
8b0e9f8269 fix(xod-arduino): avoid false negatives in isValidDigitalPort and isValidAnalogPort on non-AVR platforms 2018-11-06 16:50:37 +03:00
Evgeny Kochetkov
645f32ac20 fix(xod-arduino, xod-tabtest, stdlib): do not rely on NUM_ANALOG_INPUTS being defined 2018-10-18 21:04:02 +03:00
Evgeny Kochetkov
422b63c86b fix(xod-arduino, stdlib): do not rely on NUM_DIGITAL_PINS being defined
fixes #1477
2018-10-18 21:04:02 +03:00
Evgeny Kochetkov
fa9fa42fb9 refactor(xod-arduino, xod-tabtest): define "new" operator only for AVR architecture 2018-09-27 19:44:29 +03:00
Kirill Shumilov
efebfca271 fix(xod-arduino): wrap output pin values with pragmas only once 2018-07-11 13:47:24 +03:00
Kirill Shumilov
1d7edd22a1 fix(xod-arduino): add sorting of construction patches, update fixtures 2018-07-06 20:11:55 +03:00
Evgeny Kochetkov
778b27afe6 fix(xod-arduino): fix isSettingUp returning opposite value 2018-06-25 13:07:21 +03:00
Evgeny Kochetkov
4a15ba5db4 refactor(xod-arduino): get rid of intermediate structure PatchNames 2018-05-28 21:09:48 +03:00
Evgeny Kochetkov
38ff9aebd9 refactor(xod-arduino): place patches implementations in the same order as toposorted nodes 2018-05-28 21:09:48 +03:00