/// <summary>
 /// Revision 5 Constructor
 /// </summary>
 /// <param name="toolSerialNumber">14 ASCII characters</param>
 /// <param name="toolNumberOfTightenings">10 ASCII digits. Max 4294967295</param>
 /// <param name="lastCalibrationDate">19 ASCII characters.</param>
 /// <param name="controllerSerialNumber">10 ASCII characters</param>
 /// <param name="calibrationValue">The tool calibration value is multiplied by 100 and sent as an integer (2 decimals truncated). Six ASCII digits.</param>
 /// <param name="lastServiceDate">19 ASCII characters.</param>
 /// <param name="tighteningsSinceService">The number of tightenings since last service is specified by 10 ASCII digits. Max 4294967295.</param>
 /// <param name="toolType">The tool type is specified by 2 ASCII digits</param>
 /// <param name="motorSize">The motor size is specified by 2 ASCII digits, range 00-99.
 /// <para>00 = no motor, 01-99 = motor size xx in Atlas Copco
 /// nomenclature, or motor size = 10xx in Atlas Copco nomenclature </para>
 /// <para>(certain numbers correspond to 2
 /// different motor sizes, for example 62 for both motor
 /// size 62 and motor size 1062)</para></param>
 /// <param name="openEndData">The open end data is specified by 3 ASCII digits. 
 /// <para>The first digit represents the “use open end”: 1=true, 0=false.</para>
 /// <para>The second digit indicates the tightening direction: 0=CW, 1=CCW.</para>
 /// <para>The third digit indicates motor rotation: 0=normal,1=inverted.</para>
 /// </param>
 /// <param name="controllerSoftwareVersion">The software version is specified by 19 ASCII characters.</param>
 /// <param name="toolMaxTorque">The tool max toque value is multiplied by 100 and sent as an integer(2 decimals truncated). Six ASCII digits.</param>
 /// <param name="gearRatio">The gear ratio value is multiplied by 100 and sent as an integer(2 decimals truncated). Six ASCII digits.</param>
 /// <param name="toolFullSpeed">The tool full speed value is multiplied by 100 and sent as an integer(2 decimals truncated). Six ASCII digits.</param>
 /// <param name="primaryTool">Primary tool. The primary tool is two byte-long and specified by two ASCII digits.</param>
 /// <param name="toolModel">12 ASCII characters with padding at the end of the string if needed.The padding is done spaces.</param>
 /// <param name="revision">Revision number (default = 5)</param>
 public Mid0041(string toolSerialNumber, long toolNumberOfTightenings, DateTime lastCalibrationDate,
     string controllerSerialNumber, decimal calibrationValue, DateTime lastServiceDate,
     long tighteningsSinceService, ToolType toolType, int motorSize, OpenEndDatas openEndData,
     string controllerSoftwareVersion, decimal toolMaxTorque, decimal gearRatio, decimal toolFullSpeed,
     PrimaryTool primaryTool, string toolModel , int revision = 5)
     : this(toolSerialNumber, toolNumberOfTightenings, lastCalibrationDate, controllerSerialNumber, 
           calibrationValue, lastServiceDate, tighteningsSinceService, toolType, motorSize, openEndData,
           controllerSoftwareVersion, toolMaxTorque, gearRatio, toolFullSpeed, primaryTool, revision)
 {
     ToolModel = toolModel;
 }
 /// <summary>
 /// Revision 2 Constructor
 /// </summary>
 /// <param name="toolSerialNumber">14 ASCII characters</param>
 /// <param name="toolNumberOfTightenings">10 ASCII digits. Max 4294967295</param>
 /// <param name="lastCalibrationDate">19 ASCII characters.</param>
 /// <param name="controllerSerialNumber">10 ASCII characters</param>
 /// <param name="calibrationValue">The tool calibration value is multiplied by 100 and sent as an integer (2 decimals truncated). Six ASCII digits.</param>
 /// <param name="lastServiceDate">19 ASCII characters.</param>
 /// <param name="tighteningsSinceService">The number of tightenings since last service is specified by 10 ASCII digits. Max 4294967295.</param>
 /// <param name="toolType">The tool type is specified by 2 ASCII digits</param>
 /// <param name="motorSize">The motor size is specified by 2 ASCII digits, range 00-99.
 /// <para>00 = no motor, 01-99 = motor size xx in Atlas Copco
 /// nomenclature, or motor size = 10xx in Atlas Copco nomenclature </para>
 /// <para>(certain numbers correspond to 2
 /// different motor sizes, for example 62 for both motor
 /// size 62 and motor size 1062)</para></param>
 /// <param name="openEndData">The open end data is specified by 3 ASCII digits. 
 /// <para>The first digit represents the “use open end”: 1=true, 0=false.</para>
 /// <para>The second digit indicates the tightening direction: 0=CW, 1=CCW.</para>
 /// <para>The third digit indicates motor rotation: 0=normal,1=inverted.</para></param>
 /// <param name="controllerSoftwareVersion">The software version is specified by 19 ASCII characters.</param>
 /// <param name="revision">Revision number (default = 2)</param>
 public Mid0041(string toolSerialNumber, long toolNumberOfTightenings, DateTime lastCalibrationDate, 
     string controllerSerialNumber, decimal calibrationValue, DateTime lastServiceDate,
     long tighteningsSinceService, ToolType toolType, int motorSize, OpenEndDatas openEndData,
     string controllerSoftwareVersion, int revision = 2)
     : this(toolSerialNumber, toolNumberOfTightenings, lastCalibrationDate, controllerSerialNumber, revision)
 {
     CalibrationValue = calibrationValue;
     LastServiceDate = lastServiceDate;
     TighteningsSinceService = tighteningsSinceService;
     ToolType = toolType;
     MotorSize = motorSize;
     OpenEndData = openEndData;
     ControllerSoftwareVersion = controllerSoftwareVersion;
 }