Пример #1
0
 public C_Packet(C_Motor _mot, byte _instructionByte, List <byte> _lsParameters = null)
 {
     byteId                 = _mot.id;
     rotMotor               = _mot.rotMotor;
     returnStatusLevel      = _mot.StatusReturnLevel;
     byteInstructionOrError = _instructionByte;
     Par = _lsParameters;
 }
Пример #2
0
 public C_Packet(C_Packet packet)
 {
     byteId = packet.byteId;
     byteInstructionOrError = packet.ByteInstructionOrError;
     byteLength             = packet.byteLength;
     byteCheckSum           = packet.byteCheckSum;
     Par = packet.Par;
     returnStatusLevel = packet.returnStatusLevel;
     motorDataType     = packet.motorDataType;
 }
Пример #3
0
        public void ACTUALIZE_registerBinding(byte addressByte)
        {
            // after change in register this is called
            // react only on high bytes
            // -> as I always send command to actualize both L and H
            // -> I only need to react on the second one written to register (H)
            switch (addressByte)
            {
            case (C_DynAdd.PRESENT_POS_H):
                ACTUALIZE_valueAndLogIt(ref angleSeen, C_DynAdd.PRESENT_POS_L, C_DynAdd.PRESENT_POS_H, e_regByteType.seenValue);
                break;

            case (C_DynAdd.GOAL_POS_H):
                ACTUALIZE_valueAndLogIt(ref angleSent, C_DynAdd.GOAL_POS_L, C_DynAdd.GOAL_POS_H, e_regByteType.sentValue);
                break;

            case (C_DynAdd.PRESENT_SPEED_H):
                ACTUALIZE_valueAndLogIt(ref speedSeen, C_DynAdd.PRESENT_SPEED_L, C_DynAdd.PRESENT_SPEED_H, e_regByteType.seenValue);
                break;

            case (C_DynAdd.MOV_SPEED_H):
                ACTUALIZE_valueAndLogIt(ref speedSent, C_DynAdd.MOV_SPEED_L, C_DynAdd.MOV_SPEED_H, e_regByteType.sentValue);
                break;

            case (C_DynAdd.LED_ENABLE):
                LedValue = (e_ledValue)(reg.GET(C_DynAdd.LED_ENABLE, e_regByteType.sentValue).Val);
                LOG_reg("[LED sent] actualized form motor!");
                LedValueSeen = (e_ledValue)(reg.GET(C_DynAdd.LED_ENABLE, e_regByteType.seenValue).Val);
                LOG_reg("[LED seen] actualized form motor!");
                break;

            case (C_DynAdd.STATUS_RETURN_LEVEL):
                statusReturnLevel = (e_statusReturnLevel)(ACTUALIZE_byteAndLogIt(C_DynAdd.STATUS_RETURN_LEVEL, e_regByteType.sentValue));
                break;

            case (C_DynAdd.TORQUE_ENABLE):
                torqueEnable = (e_enabled)(ACTUALIZE_byteAndLogIt(C_DynAdd.TORQUE_ENABLE, e_regByteType.sentValue));
                break;

            case (C_DynAdd.IS_MOVING):
                isMoving = (e_bool)(ACTUALIZE_byteAndLogIt(C_DynAdd.TORQUE_ENABLE, e_regByteType.sentValue));
                break;

            case (C_DynAdd.RETURN_DELAY_TIME):
                returnDelayTime = ACTUALIZE_byteAndLogIt(C_DynAdd.RETURN_DELAY_TIME, e_regByteType.sentValue);
                break;
            }
        }