- 03 Mar, 2015 1 commit
-
-
Jeroen Vreeken authored
Add and4 variant. Fix memory allocator alignment, it was to enthousiastic.
-
- 26 Feb, 2015 1 commit
-
-
Jeroen Vreeken authored
Remove azimuth safety block. Remove now useless dt_azimuth directory.
-
- 24 Feb, 2015 2 commits
-
-
Jeroen Vreeken authored
Add range checkers to take over azimuth position range checks. Add test for new block. Remove some more logs from the az_safety block.
-
Jeroen Vreeken authored
This makes testcases more reliable and enables us to find stupid time calculation mixups.
-
- 23 Feb, 2015 2 commits
-
-
Jeroen Vreeken authored
-
Jeroen Vreeken authored
Use log block for logging DT HW position switches. Remove hard coded logging from safety block. Leave the rest of the block intact for now.
-
- 13 Feb, 2015 1 commit
-
-
Jeroen Vreeken authored
Remove now unneeded nsec base time. Command handling in the sample now uses trigger time. Trace handling still has to be done, then all nsec timers can be removed from the sample.
-
- 12 Feb, 2015 1 commit
-
-
Jeroen Vreeken authored
Sample counter removed from time interface. Only ec.c used it and it did not add anything useful. While sample is running trigger is now responsible for timestamps and translation to wall clock. (allows external clock/trigger sources). Log functions now log sub-second timestamps.
-
- 30 Jan, 2015 1 commit
-
-
Jeroen Vreeken authored
-
- 28 Jan, 2015 1 commit
-
-
Jeroen Vreeken authored
Default is set to true, if set to false console_httpd will directly connect to the controller instead of the proxies. Add test for quadrature decoder and optimize it a bit. Optimize oneshot block a bit. Add test blocks for sint32 inputs and outputs. Also add tests for them to test.ctrl
-
- 24 Jan, 2015 1 commit
-
-
Jeroen Vreeken authored
-
- 23 Jan, 2015 4 commits
-
-
Jeroen Vreeken authored
Optimize oneshot block and bridge_pwm block: -minimize amount of branches by removing sequence points. -Use local variables for structure fields to minimize dereferences.
-
Jeroen Vreeken authored
compatibility code from controller_block. Not having a create struct will now lead to failure to load the ctrl file.
-
Daan Vreeken authored
modified: controller/block/block_quadrature_decoder.c
-
Daan Vreeken authored
modified: controller/block/block_counter.c modified: controller/block/block_debug.c modified: controller/block/block_gain_var.c modified: controller/block/block_inverse_proportional.c modified: controller/block/block_random.c modified: controller/block/block_sine.c modified: controller/block/block_trajectplayer.c modified: controller/block/block_trajectplayer.h
-
- 22 Jan, 2015 5 commits
-
-
Daan Vreeken authored
modified: block/block_oneshot.c
-
Daan Vreeken authored
modified: block/build.mk
-
Daan Vreeken authored
When its 'reset' input is active, the output will always be off (=false). When the 'set' input is active, the output will be turned on. Once the 'set' input becomes inactive, the output will remain on for 'period' seconds and then turn off. A parameter called 'force' allows the block to be forced into the 'set' or 'reset' states. new file: block/block_oneshot.c
-
Jeroen Vreeken authored
Trace server capacity is now based on actuall number of outputs, not on some magic number. Add name and unit option to command_bool and command_float. Modify tests to test this.
-
Jeroen Vreeken authored
A lot simpler than the 1d and 3d setpoint generator and perfect for temperature settings ;) Add test for command_float block.
-
- 21 Jan, 2015 1 commit
-
-
Jeroen Vreeken authored
-
- 20 Jan, 2015 19 commits
-
-
Daan Vreeken authored
With this, we can create e.g. an oscillator module that only has an output, but no inputs. modified: controller/controller_load_parser.y
-
Daan Vreeken authored
modified: controller/controller_load_parser.y
-
Daan Vreeken authored
The 'filename' parameter wasn't initialized here, so when extra->filename is used to generate e.g. log messages, garbage entered the log. modified: controller/controller_load.c
-
Daan Vreeken authored
allows us to e.g. comment out all parameter lines in a parameter block. (Commenting out all parameters would fail before.) modified: controller/controller_load_parser.y
-
Daan Vreeken authored
modified: controller/controller/controller_block.c modified: controller/controller/controller_block.h
-
Jeroen Vreeken authored
Use one version everywhere, and make sure that one version is complete. This version also uses a switch with the actuall enum types, which is safer.
-
Daan Vreeken authored
We do this by checking the final state of all links after loading the top-most controller file. The new code will allow an included file to create links to blocks that will only exist later on during the load process, and it will successfully error out when links are defined for non-existing block. Furthermore, controller_block_link() will now bail out immediately when it hits an unrecoverable linker error. With this change, the error mesaage of the linker step that failed will remain at the end of the output instead of being flushed off the screen by e.g. 100+ 'Linked x to y (chained)' lines. modified: controller/controller/controller_block.c modified: controller/controller/controller_load.c
-
Daan Vreeken authored
This caused all my .ctrl files with typos or non-existing block names in their 'links { }' section to 'just run' instead of failing with an error. We will now halt with an error like : DEBUG: Input block 'digg_out2' does not (yet) exist, will try to link later ERROR: Failed to link controller! ERROR: Could not load controller file modified: controller/controller_load.c
-
Daan Vreeken authored
Untill now, connecting e.g. a 'bool' output to a 'float' input would give: ERROR: Input terminal x.y not found .. although both the input and the output existed. With this commit, the error will read : ERROR: Type mismatch. Can't connect output terminal a.b (of type 'bool') to input terminal x.y (of type 'float') modified: controller/controller_block.c modified: controller/controller_block.h
-
Daan Vreeken authored
modified: controller/controller_block.c
-
Daan Vreeken authored
(No functional changes.) There's an error in the error reporting of this routine, but we'll fix that in a separate commit. modified: controller/controller_block.c
-
Jeroen Vreeken authored
-
Daan Vreeken authored
'slash' would be used uninitialized in this case. While we're here, change code to use strrchr() instead of rolling our own and only stat() a filename if we've found a '/', since we know 'extern->filename' will not contain a directory name otherwise. modified: controller/controller_load.c
-
Daan Vreeken authored
modified: dt_azimuth/dt_az_safety.c modified: dt_elevation/dt_el_safety.c
-
Daan Vreeken authored
Don't intialize bool or uint32_t with float value. modified: block/block_value_bool.c modified: block/block_value_uint32.c
-
Daan Vreeken authored
My .ctrl file is so much cleaner this way :) modified: block/block_value_bool.c modified: block/block_value_uint32.c
-
Daan Vreeken authored
Before, a value of '1.0' had to be created like this : blocks(..) { { "value", "one" } } params { { "one", "value", 1.0 } } Now you can simply instantiate the same block with : blocks(..) { { "value", "one", 1.0 } } I've finally found a good use for fully specified multiple choice argument lists :) modified: block/block_value.c
-
Daan Vreeken authored
(You'll see why in the next commit..) modified: controller/controller_load.c
-
Daan Vreeken authored
When the .ctrl file contains a line to create an 'ec' block with incorrect arguments, the following errors would be emitted : ERROR: Invalid arguments trying to create block 'ethercat' DEBUG: Load module 'ec' with prefix 'ethercat' ERROR: ec:1: syntax error, unexpected $end DEBUG: End of module 'ec': 1 ERROR: pand.ctrl:50: Error creating block ERROR: Could not load controller file The code would first try to load the dynamically loadable 'ec' block's module. This would fail, because of incorrect arguments. controller_load_block_create() would then try to stat() the file 'ec'. When found, it is opened and loaded as a module block. The code didn't check for the file to be a regular file and my build system contains a directory with the name 'ec'. On FreeBSD, directories can be opened and read as if they were regular files, but the .ctrl file parser would fail to load the directory. Change the code to *not* try to parse directories. (It would be even better if we just stopped trying to load blocks when controller_block_create() tells us that the block does exist, but the user has made an error. At this moment though, controller_block_create() has no way of telling the caller that.) The new code bails out with : ERROR: Invalid arguments trying to create block 'ethercat' ERROR: Could not load or create block 'ec' ERROR: pand.ctrl:50: Error creating block ERROR: Could not load controller file modified: controller/controller/controller_load.c
-