Exemple #1
0
        public string SetOutputState(MotorPort motor, int speed, Mode mode, RegulationMode regMode, int turnRatio, RunState runState)
        {
            byte[] message = new byte[13];  // message to be sent

            // Populate message
            message[0] = 0x00;                  // Feedback required
            message[1] = (byte)DirectCommand.SetOutputState;
            message[2] = (byte)motor;           // output port
            message[3] = (byte)speed;           // power set point
            message[4] = (byte)mode;            // mode byte
            message[5] = (byte)regMode;         // reg mode
            message[6] = (byte)turnRatio;       //turn ratio
            message[7] = (byte)runState;        //run state

            //figure something out with this - make programmerable
            message[8] = 0x00;                      //tacho limit
            message[9] = 0x00;
            message[10] = 0x00;
            message[11] = 0x00;
            message[12] = 0x00;

            // Send message
            serial_port.Send(message, ref reply);
            returnMessage = CheckResponce(ref reply[2]);
            return returnMessage;
        }
Exemple #2
0
 /// <summary>
 /// Set output state for a specfic port.
 /// </summary>
 public void SetOutputState(int port, int power_setpoint, OutputMode mode, RegulationMode regulation_mode, int turn_ratio, RunState run_state, int tacho_limit)
 {
     byte[] message = new byte[12];
     if (!RequestResponse)
         message[0] = 0x80;
     message[1] = 0x04;
     message[2] = (byte)port;
     message[3] = (byte)Convert.ToSByte(power_setpoint);
     message[4] = (byte)mode;
     message[5] = (byte)regulation_mode;
     message[6] = (byte)Convert.ToSByte(turn_ratio);
     message[7] = (byte)run_state;
     message[8] = (byte)tacho_limit;
     message[9] = (byte)(tacho_limit >> 8);
     message[10] = (byte)(tacho_limit >> 16);
     message[11] = (byte)(tacho_limit >> 24);
     robot.Send(message);
 }
Exemple #3
0
        public string SetOutputState(int speed, Mode mode = Mode.MotorOn, RegulationMode regMode = RegulationMode.Motor_On, int turnRatio = 0, RunState runState = RunState.Running, int tachoLimit =0)
        {
            byte[] message = new byte[13];  // message to be sent
            byte[] tacholimit = BitConverter.GetBytes(tachoLimit);
            // Populate message
            message[0] = 0x00;                  // Feedback required
            message[1] = (byte)DirectCommand.SetOutputState;
            message[2] = (byte)motor_port;           // output port
            message[3] = (byte)speed;           // power set point
            message[4] = (byte)mode;            // mode byte
            message[5] = (byte)regMode;         // reg mode
            message[6] = (byte)turnRatio;       //turn ratio
            message[7] = (byte)runState;        //run state

            //figure something out with this - make programmerable
            tacholimit.CopyTo(message, 8);

            // Send message
            serial_port.Send(message, ref reply);
            if(reply != null)
                returnMessage = CheckResponce(ref reply[2]);

            return returnMessage;
        }
Exemple #4
0
 /// <summary>
 /// Set output state for a specfic port.
 /// </summary>
 public void SetOutputState(int port, int power_setpoint, OutputMode mode, RegulationMode regulation_mode, int turn_ratio, RunState run_state, int tacho_limit)
 {
     byte[] message = new byte[12];
     if (!RequestResponse)
     {
         message[0] = 0x80;
     }
     message[1]  = 0x04;
     message[2]  = (byte)port;
     message[3]  = (byte)Convert.ToSByte(power_setpoint);
     message[4]  = (byte)mode;
     message[5]  = (byte)regulation_mode;
     message[6]  = (byte)Convert.ToSByte(turn_ratio);
     message[7]  = (byte)run_state;
     message[8]  = (byte)tacho_limit;
     message[9]  = (byte)(tacho_limit >> 8);
     message[10] = (byte)(tacho_limit >> 16);
     message[11] = (byte)(tacho_limit >> 24);
     robot.Send(message);
 }