public string SaveToString() { var buffer = new string[16]; buffer[0] = ((short)Address).ToString(CultureInfo.InvariantCulture); buffer[1] = ((int)SizeType).ToString(CultureInfo.InvariantCulture); buffer[2] = Mul.ToString(CultureInfo.InvariantCulture); buffer[3] = Div.ToString(CultureInfo.InvariantCulture); buffer[4] = Offset.ToString(CultureInfo.InvariantCulture); buffer[5] = Precision.ToString(CultureInfo.InvariantCulture); buffer[6] = ((int)ItemType).ToString(CultureInfo.InvariantCulture); buffer[7] = ColCount.ToString(CultureInfo.InvariantCulture); buffer[8] = RowCount.ToString(CultureInfo.InvariantCulture); buffer[9] = BitAddress.ToString(CultureInfo.InvariantCulture); buffer[10] = Reserve1.ToString(CultureInfo.InvariantCulture); buffer[11] = Reserve2.ToString(CultureInfo.InvariantCulture); buffer[12] = ReverseX ? "1" : "0"; buffer[13] = ReverseY ? "1" : "0"; buffer[14] = Min.ToString(CultureInfo.InvariantCulture); buffer[15] = Max.ToString(CultureInfo.InvariantCulture); return(String.Join(" ", buffer)); }
public System.Drawing.Point GetCoordinatesFromOrdinal(int Ordinal) { if (Ordinal > Capacity - 1) { throw new ApplicationException("Capacity of " + RowCount.ToString() + " x " + ColCount.ToString() + " Rack exceeded."); } int RowIndex, ColIndex; switch (Order) { case Mapping.FillOrder.TopBottomLeftRight: RowIndex = Ordinal % RowCount; ColIndex = Ordinal / RowCount; break; case Mapping.FillOrder.LeftRightTopBottom: RowIndex = Ordinal / ColCount; ColIndex = Ordinal % ColCount; break; case Mapping.FillOrder.BottomTopRightLeft: RowIndex = (Capacity - Ordinal - 1) % RowCount; ColIndex = (Capacity - Ordinal - 1) / RowCount; break; case Mapping.FillOrder.RightLeftBottomTop: RowIndex = (Capacity - Ordinal - 1) / ColCount; ColIndex = (Capacity - Ordinal - 1) % ColCount; break; default: throw new ApplicationException("Unhandled mapping enumeration"); } return(new System.Drawing.Point(ColIndex, RowIndex)); }