public void Initialize(string config) { try { if (config == "StorageArea_new") { StorageType = 1; } else if (config == "StorageArea_new_double") { StorageType = 2; } else if (config == "StorageArea_pcc") { StorageType = 3; } getConfigData(config); connection = new StorageArea.StorageAreaClient(); connection.DataChanged += dataChanged; connection.PlaceSelected += placeSelected; connection.Connect("localhost", Port); builder = new StorageArea.StorageAreaBuilder(connection); for (int i = 0; i < StorageAreaCount; i++) { string Zoffset = StorageAreaspacing.Split(',')[i]; repl(connection, builder, "Rack " + columns + " " + rows + " " + Zoffset + " " + rowsspace + " " + columnspace + ""); } repl(connection, builder, "Build"); } catch (Exception ex) { throw (ex); // return; } }
private void repl(StorageArea.StorageAreaClient client, StorageArea.StorageAreaBuilder builder, string readline) { try { var line = readline; var splittedLine = line.Split(' '); switch (splittedLine[0]) { case "Disconnect": client.Disconnect(); return; case "Change": var coordinateString = splittedLine[1]; coordinateString = coordinateString.Trim('(', ')'); var coordinates = coordinateString.Split(','); var column = ushort.Parse(coordinates[0]); var row = ushort.Parse(coordinates[1]); var rack = ushort.Parse(coordinates[2]); //var data = ulong.Parse(splittedLine[2]); var type = uint.Parse(splittedLine[2]); var id = uint.Parse(splittedLine[3]); // change data client.ChangeData(Tuple.Create(column, row, rack), BitConverter.GetBytes(id).Concat(BitConverter.GetBytes(type))); // alternative client.GetPlace(column, row, rack).SetData(type, id); break; case "Rack": var columns = ushort.Parse(splittedLine[1]); var rows = ushort.Parse(splittedLine[2]); var position = float.Parse(splittedLine[3]); var layerSpace = float.Parse(splittedLine[4]); var columnSpace = float.Parse(splittedLine[5]); // add a rack builder.WithRack(columns, rows, position, layerSpace, columnSpace); break; case "Build": builder.Build(); break; } } catch (Exception ex) { throw (ex); } }