# Hexapod cpp_logic simulation IOC example. # Run with the hexapod project as the IOC working directory. # Build first: make logic ECMC_ROOT= ECMCCFG_ROOT= # build/libhexapod_logic.so # cfg/libhexapod_logic.so_cpp_logic.subs # # Axes 1..6: X, Y, Z, Rx, Ry, Rz (internal coordinate trajectories). # Axes 7..12: L1..L6 (external IK trajectories and ideal leg feedback). # No EtherCAT master or physical hardware is required. # The IOC launcher supplies iocInit; ecmccfg finalizes at that point. # # Useful panels after startup: # caqtdm -macro "IOC=HEXAPOD" ecmcCppLogicOverview.ui # caqtdm -macro "IOC=HEXAPOD,CPP_ID=0" ecmcCppLogic.ui epicsEnvSet("IOC", "${IOC=HEXAPD}") require ecmccfg sandst_a "ECMC_VER=sandst_a,MASTER_ID=-1,EC_RATE=1000" # Load all twelve virtual axes, then the C++ transform and its status PVs. ${SCRIPTEXEC} ./cfg/load.cmd