1. 18 Jan, 2015 4 commits
    • Daan Vreeken's avatar
      Add a 'comparator' block. · d64f5e02
      Daan Vreeken authored
      The block will output 'true' when input positive >= input negative.
      
      	new file:   block/block_comparator.c
      	modified:   block/build.mk
      d64f5e02
    • Daan Vreeken's avatar
      Remove debug code. · 5dcefc23
      Daan Vreeken authored
      	modified:   controller/controller_load.c
      5dcefc23
    • Daan Vreeken's avatar
      Correctly handle the '*' wildcard argument type. · 618dba77
      Daan Vreeken authored
      We now interpret it as 'from this point on, zero or more arguments of any type
      will do'.
      
      	modified:   controller/controller_load.c
      618dba77
    • Daan Vreeken's avatar
      Implement full argument type checking for parameters. The code could also be · ebdd92b7
      Daan Vreeken authored
      used to verify the arguments and types of block create functions, etc., but
      start by validating parameters for now. This helps a lot when writing .ctrl
      files as the parser will now stop with a sensible error instead of a segfault
      when arguments are mismatched.
      
      Some example output:
      ERROR: Invalid number of arguments! Expecting 1 argument instead of 3.
      ERROR: Argument mismatch while trying to set 'divider' param on block 'heater'
      ERROR: pand-test.ctrl:169: Error setting parameter
      
      ERROR: Argument mismatch in argument 1. Expected argument of type 'int' instead of 'char*'
      ERROR: Argument mismatch while trying to set 'divider' param on block 'heater'
      ERROR: pand-test.ctrl:169: Error setting parameter
      
      	modified:   controller/controller_load.c
      ebdd92b7
  2. 17 Jan, 2015 6 commits
  3. 16 Jan, 2015 8 commits
    • Daan Vreeken's avatar
      Add the name of the param to the arguments of the param set function. · 713eedaa
      Daan Vreeken authored
      This way we can use one function to set a number of params. All blocks
      (including the il2c generator) have been updated with the extra argument.
      
      	modified:   Makefile
      	modified:   controller/am335x/block_am335x_adc.c
      	modified:   controller/am335x/block_am335x_pwm.c
      	modified:   controller/am335x/block_am335x_qed.c
      	modified:   controller/block/block_bridge_pwm.c
      	modified:   controller/block/block_counter.c
      	modified:   controller/block/block_filter_iir.c
      	modified:   controller/block/block_filter_lp.c
      	modified:   controller/block/block_friction.c
      	modified:   controller/block/block_gain.c
      	modified:   controller/block/block_inverse_proportional.c
      	modified:   controller/block/block_limit.c
      	modified:   controller/block/block_limit_2nd.c
      	modified:   controller/block/block_limit_var.c
      	modified:   controller/block/block_matrix_2x2.c
      	modified:   controller/block/block_pid.c
      	modified:   controller/block/block_pid_aw.c
      	modified:   controller/block/block_quantize.c
      	modified:   controller/block/block_rangecheck.c
      	modified:   controller/block/block_servo_state.c
      	modified:   controller/block/block_setpoint_generator_1d.c
      	modified:   controller/block/block_setpoint_generator_3d.c
      	modified:   controller/block/block_sine.c
      	modified:   controller/block/block_state_machine.c
      	modified:   controller/block/block_trajectplayer.c
      	modified:   controller/block/block_trigger.c
      	modified:   controller/block/block_value.c
      	modified:   controller/block/block_value_bool.c
      	modified:   controller/block/block_value_uint32.c
      	modified:   controller/block/il2c/il2c.c
      	modified:   controller/controller/controller_block.h
      	modified:   controller/controller/controller_block_param.c
      	modified:   controller/dt_azimuth/dt_az_safety.c
      	modified:   controller/dt_elevation/dt_el_safety.c
      	modified:   controller/ec/block_beckhoff_el2xxx.c
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      	modified:   controller/ec/block_beckhoff_el4xxx.c
      	modified:   controller/ec/block_ec.c
      	modified:   controller/ec/block_ec_sim.c
      	modified:   controller/test/block_test_command.c
      	modified:   controller/test/block_test_input_bool.c
      	modified:   controller/test/block_test_input_float.c
      	modified:   controller/test/block_test_input_uint32.c
      	modified:   controller/test/block_test_output_bool.c
      	modified:   controller/test/block_test_output_float.c
      	modified:   controller/test/block_test_output_uint32.c
      713eedaa
    • Jeroen Vreeken's avatar
      Add new module keyword. · 8cfc3505
      Jeroen Vreeken authored
      Add module code in controller_module
      Introduce new test for module
      Use module in azimuth and elevation simulators
      Remove dedicated simulator blocks
      8cfc3505
    • Daan Vreeken's avatar
      On blocks with less than 8 inputs, don't expose check_input[x] params of · 1252ae97
      Daan Vreeken authored
      inputs that don't exist. We do this by reversing the order of the params list
      and feeding the ..param_list_add() function the params list, starting at the
      first check_input param that actually exists on the current hardware.
      
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      1252ae97
    • Daan Vreeken's avatar
      Pull the copyright notice into this year after all of today's changes. · db45d8a6
      Daan Vreeken authored
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      db45d8a6
    • Daan Vreeken's avatar
      Style fix: I like my structures best when they're aligned.. · d1d0f683
      Daan Vreeken authored
      (No functional changes.)
      
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      d1d0f683
    • Daan Vreeken's avatar
      Get all of the EL3xxx blocks that I have to work correctly. · 5cb96a1b
      Daan Vreeken authored
      o Add heaps of links to documentation.
      o Add a list of devices that are still missing if this driver really wants
        to support all EL3*** blocks.
      o Implement a number of missing (and needed) calculate functions.
      
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      5cb96a1b
    • Daan Vreeken's avatar
      Add a 'calc' member to the device list instead of the switch()... if() block · 39010d2c
      Daan Vreeken authored
      in the *_create() function.
      This makes it painfully visible that most blocks are missing code.
      (No functional changes.)
      
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      39010d2c
    • Daan Vreeken's avatar
      Move to C99 initializers for the device list to make it a bit more readable. · e968f634
      Daan Vreeken authored
      (No functional changes.)
      
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      e968f634
  4. 15 Jan, 2015 5 commits
    • Daan Vreeken's avatar
      Use a bigger hammer to stop this driver from working on unsupported hardware. · 73914903
      Daan Vreeken authored
      o Make the code halt in all unsupported cases where we would wind up without
        a calculate function.
      o Switch a number of blocks to 'unverified' that have obvious errors in their
        gain/offset table entries.
      o Document where we've found the data for the corrected table entries.
      
      This is an unfinished work in progress. Half of the blocks I have either don't
      work at all right now, or their output values are way off.
      
      o Introduce a first piece of code to test the selection of different
        temperature sensors on the EL3204 / EL3204-0200. This will eventually grow
        into parameters that allow the user to select different resistor curves per
        input channel.
      
      	modified:   controller/ec/block_beckhoff_el3xxx.c
      73914903
    • Jeroen Vreeken's avatar
      Enable watchdog in the stoeber block. · 37bd37d2
      Jeroen Vreeken authored
      It was already enabled in the ethercat code, but that changed.
      37bd37d2
    • Jeroen Vreeken's avatar
      Sort list traces in trace.html · 2336cac5
      Jeroen Vreeken authored
      2336cac5
    • Daan Vreeken's avatar
      Enable the index reset register. · c5c9a46b
      Daan Vreeken authored
      This is a forward-port of a commit made today to a project that is based on
      a version of the DT code from ~2012. The EL5101 has a 'C' input that can
      accept an index pulse from the encoder. Enable this input so the counter is
      actually reset to 0 on every pulse of the index pin.
      Note: Although by far most registers on Ethercat blocks are volatile, this
      register is non-volatile. When set to '1' once, this register will remain '1',
      even after cycling the block's power. (According to the documentation, all
      0x8000:* and 0x8001:* registers are non-volatile.)
      
      	modified:   ec/block_beckhoff_el5101.c
      c5c9a46b
    • Jeroen Vreeken's avatar
      7e3254d6
  5. 14 Jan, 2015 1 commit
  6. 13 Jan, 2015 9 commits
  7. 12 Jan, 2015 7 commits