Beispiel #1
0
        public GripperController(NexMotion_IOAdapter ioadapter, uint tx_offset, uint rx_offset)
        {
            /* TxPDO OFFSET */
            INPUT_DATA_OFFSET            = tx_offset;
            CONTROLLER_FLAG_OFFSET       = INPUT_DATA_OFFSET + 2;
            CURRENT_POSITION_OFFSET      = INPUT_DATA_OFFSET + 4;
            CURRENT_SPEED_OFFSET         = INPUT_DATA_OFFSET + 8;
            CURRENT_PUSHGIN_FORCE_OFFSET = INPUT_DATA_OFFSET + 10;
            SET_TARGET_POSITION_OFFSET   = INPUT_DATA_OFFSET + 12;
            ALARM1_OFFSET = INPUT_DATA_OFFSET + 16;

            /* RxPDO OFFSET */
            OUTPUT_DATA_OFFSET     = rx_offset;
            DATA_FLAG_OFFSET       = OUTPUT_DATA_OFFSET + 2;
            START_FLAG_OFFSET      = OUTPUT_DATA_OFFSET + 4;
            MOVEMENT_MODE_OFFSET   = OUTPUT_DATA_OFFSET + 5;
            SPEED_OFFSET           = OUTPUT_DATA_OFFSET + 6;
            TARGET_POSITION_OFFSET = OUTPUT_DATA_OFFSET + 8;
            ACC_OFFSET             = OUTPUT_DATA_OFFSET + 12;
            DEC_OFFSET             = OUTPUT_DATA_OFFSET + 14;
            PUSHING_FORCE_OFFSET   = OUTPUT_DATA_OFFSET + 16;
            TRIGGER_LV_OFFSET      = OUTPUT_DATA_OFFSET + 18;
            PUSHING_SPEED_OFFSET   = OUTPUT_DATA_OFFSET + 20;
            MOVEING_FORCE_OFFSET   = OUTPUT_DATA_OFFSET + 22;
            AREA1_OFFSET           = OUTPUT_DATA_OFFSET + 24;
            AREA2_OFFSET           = OUTPUT_DATA_OFFSET + 28;
            IN_POSINTION_OFFSET    = OUTPUT_DATA_OFFSET + 32;

            mIoAdapter = ioadapter;
        }
        public void InitIOForRobot(uint offset, int group_id)
        {
            if (robots.Count < 1)
            {
                Console.WriteLine("No such group to be assign to!");
                return;
            }

            if (offset > SystemConfig.NEXCOMROBOT_MAX_IO)
            {
                Console.WriteLine("Exceed pre-defined io range!");
                return;
            }

            NexMotion_IOAdapter tmp_IOAdapter   = new NexMotion_IOAdapter(mRobot.DeviceID);
            GripperController   tmp_gripper_ctl = new GripperController(tmp_IOAdapter, offset, offset);

            robots[group_id].SetGripper(tmp_gripper_ctl);
        }