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; }
/// <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); }
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; }
/// <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); }