Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
0
        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);
            }
        }