Example #1
0
        public DryveStatus(string binaryStatus, DryveModeOfOperation opMode)
        {
            if (!Regex.IsMatch(binaryStatus, "^[01]{16}$"))
            {
                throw new Exception("Invalid dryveStatus");
            }
            bool[] statusArray = binaryStatus.Select(c => c == '1').ToArray();

            _modeOfOperation    = opMode;
            _binaryStatus       = binaryStatus;
            ReadySwitchOn       = statusArray[15];
            IsOn                = statusArray[14];
            IsOpEnabled         = statusArray[13];
            Fault               = statusArray[12];
            VoltageEnabled      = statusArray[11];
            QuickStop           = statusArray[10];
            SwitchOnDiabled     = statusArray[9];
            Warning             = statusArray[8];
            MotorEnabled        = statusArray[6];
            TargetReached       = statusArray[5];
            InternalLimitActive = statusArray[4];
            SetpointApplied     = opMode == DryveModeOfOperation.Mode_ProfilePosition ? (bool?)statusArray[3] : null;
            IsMoving            = opMode == DryveModeOfOperation.Mode_ProfileVelocity ? (bool?)!statusArray[3] : null;
            HomingAttained      = opMode == DryveModeOfOperation.Mode_Homing ? (bool?)statusArray[3] : null;
        }
Example #2
0
        public DryveModeOfOperation GetModeOfOperation()
        {
            byte[] result  = SendAndReceive(DryveObject.ModesOfOperationDisplay);
            string modeVal = ParseReadData(result, ResultFormat.Integer);
            DryveModeOfOperation modeOfOperation = ModeDict.FirstOrDefault(x => x.Value == short.Parse(modeVal)).Key;

            return(modeOfOperation);
        }
Example #3
0
        public DryveStatus GetStatus()
        {
            DryveModeOfOperation modeOfOperation = GetModeOfOperation();

            byte[]      result      = SendAndReceive(DryveObject.Statusword);
            DryveStatus dryveStatus = new DryveStatus(ParseReadData(result), modeOfOperation);

            return(dryveStatus);
        }
Example #4
0
        public byte[] SetModeOfOperation(DryveModeOfOperation modeOfOperation)
        {
            short modeByte = ModeDict[modeOfOperation];

            byte[] modeBytes = new byte[1] {
                (byte)modeByte
            };
            var result = SendAndReceive(messageType: DryveObject.ModesOfOperation, accessType: ObjectAccess.Write, dataValue: modeBytes);

            return(result);
        }
Example #5
0
 public void SetModeOfOperation(DryveModeOfOperation modeName)
 {
     var result = _msgHandler.SetModeOfOperation(modeName);
 }