Commit Graph

57 Commits

Author SHA1 Message Date
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
Evgeny Kochetkov
45d4d89d72 refactor(xod-project, xod-arduino): extract removing unused patches from flatten to a separate step 2018-05-28 19:47:01 +03:00
Kirill Shumilov
e950794b5e fix(xod-arduino): define Number always as a 4-byte float platform-independent 2018-05-28 18:08:40 +03:00
Kirill Shumilov
fe2324daac refactor(workspace): update projects in workspace and bundled libs 2018-04-26 17:46:29 +03:00
Evgeny Kochetkov
cece338ea9 refactor(stdlib): rename xod/core/gate to xod/core/branch 2018-04-19 13:21:17 +03:00
Evgeny Kochetkov
89b82c5622 feat(xod-arduino): add an equal function for Lists 2018-04-19 13:21:16 +03:00
Victor Nakoryakov
fdebafd1c9 test(xod-arduino,infra): update C++ related test fixtures
RAM consumption for blink has grown on 1 byte. It’s the g_isSettingUp.
However, practically nothing changes. The previous solution with the
`bool firstRun` argument always consumed that byte, although `avr-size`
was not able to see it since the arg is allocated on stack, inside
`loop`.
2018-04-13 17:56:20 +03:00
Victor Nakoryakov
96e7343ad8 refactor(xod-arduino): remove unnecessary #include, scope STL shim locally 2018-04-11 18:16:19 +03:00
Victor Nakoryakov
87cca27040 test(xod-arduino): update fixtures 2018-01-18 15:35:00 +03:00
Kirill Shumilov
8783e52ef3 chore(workspace, fixtures): add EOL at EOF to all project.xod, .xodp and .xodm files 2017-11-01 19:29:27 +03:00
Victor Nakoryakov
d541a30b69 test(workspace): update test fixtures 2017-10-27 14:48:57 +03:00
Evgeny Kochetkov
df70f0a5b5 fix(xod-project): fix values bound to inputs leaking to outputs in some cases
Closes #828
2017-10-26 14:08:26 +03:00
Evgeny Kochetkov
ff9d3c88a2 feat(xod-client, xod-arduino): implement defer-* nodes to allow feedback loops
Closes #733
2017-10-11 16:16:53 +03:00
Kirill Shumilov
32aef8fe7e fix(xod-arduino): set a magic value into delay in setup to make it works properly on all boards 2017-10-04 13:19:40 +03:00
Kirill Shumilov
44577c03a4 feat(xod-arduino-deploy, xod-deploy, xod-client, xod-client-electron): add interactive debug session with watch nodes, optimized log and etc (+31 squashed commits)
Squashed commits:
[ca50efb] refactor(xod-client, xod-arduino-deploy, xod-client-electron): handle lost connection (unplug device), make some small fixes
[8c9fbce] tweak(xod-client-electron): add retries to find device after upload (3 times with 300ms delay)
[8c77fce] fix(xod-client-electron): fix adding an error message into debugger log
[c0668c1] refactor(xod-client, xod-client-electron): add throttling to send data readed from serial port and updating log by list of messages instead of appending each message
[9528c6e] refactor(xod-arduino, xod-client, xod-client-electron): make fixes in accordance with comments to PR
[117996b] refactor(xod-client): simplified selecting renderer by message type in the Log container
[512b74f] refactor(xod-arduino): revert XOD_TRACE functions to use only for debug runtime, watch-node uses DEBUG_SERIAL, updated fixtures and etc
[7b92c98] chore(xod-client): remove dispatching no longer existing action (setMode)
[cb38db1] refactor(xod-arduino): split transpiling into two functions: transformProject and transpile, add function to get nodeIdsMap from transformed project, use last one instead of pushing it through a long pipes of calls
[01c3f2e] tweak(xod-client): show xod message delimiter in the log
[360f216] chore(xod-client): change caption of button "Stop debug session" -> "Stop debug"
[531c280] style(xod-client): change colors of watch nodes, remove ellipsis from watch node values, change color of error and success message borders
[bb3c5df] fix(xod-client): fix panning mode to show nodeValues in debug session interactively
[7fac400] tweak(xod-client): sync offsets of patches between tabs (if user pans debug tab -> patch tab panned too, and vice versa)
[086d863] tweak(xod-client): stop debug session when debugger tab was closed
[eccc14a] tweak(xod-client): pass offsets between patchTab and debuggerTab, reopen original patch on debugger tab close
[83c3090] test(xod-client-electron): fix functional test and remove fixture (take it from workspace)
[f87fb2d] tweak(xod-client): tweak closing tab to prevent switching to another tab if closed another one
[c17cc0f] refactor(xod-client): remove editor modes from redux store, make modes depends on tab type
[92ce1df] refactor(xod-client): add tab types, add debug tab type and styles, handle opening and closing this tab on debug start/stop
[09af9af] refactor(xod-client): refactored tabs to contain an unique id and patchPath, instead of storing two entities in one property
[31991f7] refactor(xod-client): optimize rendering logs, add Debugger into storybook, fix one possible bug in the reducer
[7355928] refactor(xod-client): move log of Debugger into a separate container
[30d36c5] refactor(xod-client): optimize debugger selectors
[9615450] feat(xod-client): pass values of watch nodes into view
[34b40d0] refactor(xod-client): move rendering of node bodies and some parts into small components, add WidgetNodeBody component
[18f4e75] feat(xod-client): add new editor mode: debugging
[6c6d9bd] feat(xod-arduino, xod-client): store map of nodeIds to topologically sorted index of nodes in the redux state
[492caea] feat(xod-arduino, xod-project): remove debug nodes on transpilation without debug mode, update fixtures and tests
[63a8083] refactor(xod-arduino, xod-clients): update debug flags in runtime, allow to switch flags in the transpiler (using options object) and integrate it into clients
[01cfd83] feat(xod-arduino, workspace): implement watch node and change debug flags in the runtime and configuration template
2017-10-03 14:26:28 +03:00
Victor Nakoryakov
2f9fe3f94b fix(workspace,rt/c++): erradicate a repeating typo 2017-09-28 19:47:24 +03:00
Kirill Shumilov
9eb9f9053a feat(xod-client, xod-client-electron): add "debug session" feature and debugger pane 2017-09-21 20:35:19 +03:00
Victor Nakoryakov
27b07451a5 test(rt/c++): update test fixtures 2017-08-31 18:47:28 +03:00
Victor Nakoryakov
3c172e44ea fix(rt/c++): provide dtostrf function for all platforms 2017-08-30 23:10:35 +03:00
Victor Nakoryakov
981902fff6 optimize(xod-arduino): toposort nodes in-place 2017-08-30 01:00:52 +03:00
Victor Nakoryakov
7c2304a9ff test(xod-arduino): update test fixtures 2017-08-24 17:48:25 +03:00
Evgeny Kochetkov
d371809bff chore(workspace): update main standard projects for new layout 2017-08-24 11:54:32 +03:00
Evgeny Kochetkov
267af7c719 fix(xod-arduino): do not mark pulses as dirty on boot
Fixes #699
2017-08-02 19:10:02 +03:00
Victor Nakoryakov
bada494260 fix(rt/c++): missing entries of refactoring 6d20c35
Some Inputs::XXX and Outputs::YYY were not renamed to input_XXX and
output_YYY
2017-07-31 13:51:11 +03:00
Victor Nakoryakov
ca84690248 refactor(rt/c++): rename root namespace (_program → xod) 2017-07-28 12:18:31 +03:00
Victor Nakoryakov
43cfffc919 refactor(rt/c++): introduce Context ctx abstraction layer
Change standard signature of native nodes from

void evaluate(NodeId nid)

to

void evaluate(Context ctx)

Currently, this is a pure fiction. But it would allow to introduce
required abstraction layer for lists lifting in which case
Context ≠ NodeId.
2017-07-28 12:18:31 +03:00
Victor Nakoryakov
6d20c35beb fix(rt/c++): workaround pin names and global macros collision
Closes #650
2017-07-28 12:18:31 +03:00
Victor Nakoryakov
54b138dc01 feat(rt/c++): hide State* arg of evaluate
The minority of nodes that deal with internal state now should call
`getState` to access their state. On other end all stateless nodes don’t
have to carry `state` argument in their `evaluate` signature.

Closes #565
2017-07-28 12:18:31 +03:00
Evgeny Kochetkov
d77321cded chore(workspace): update default projects 2017-07-12 14:41:17 +03:00
Evgeny Kochetkov
1e643ea741 feat(xod-project): support binding input pulses to ‘ON_BOOT’ and ‘CONTINUOUSLY’ 2017-07-12 10:59:41 +03:00
Evgeny Kochetkov
95148b468a refactor(xod-arduino): mark all nodes as dirty on start 2017-07-11 20:05:41 +03:00
Evgeny Kochetkov
5dddb5a917 chore(workspace): update fixtures for included projects 2017-07-07 15:55:17 +03:00
Evgeny Kochetkov
668d7da469 chore(workspace): adapt included projects to pulse pins removal 2017-07-07 15:53:29 +03:00
Evgeny Kochetkov
9d4f347af0 refactor(stdlib): remove UPD pin from ‘xod/core/digital-output’ patch 2017-07-07 12:46:53 +03:00