public async Task move_should_stop_at_the_edge_of_the_garden(char orientation, int expectedY, int expectedX) { IPosition setting = new DevicePosition(5, 5, orientation) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); var position = _device.CurrentPosition(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); _device.Move(); IPosition newPosition = await _device.Move(); Assert.AreEqual(expectedY, newPosition.YAxis); Assert.AreEqual(expectedX, newPosition.XAxis); Assert.AreEqual(orientation, newPosition.Orientation); }
private static Mock <ISettings> SetInitialSettingsMock(int gardenLenght, int gardenWidth, int yAxis, int xAxis, char orientation) { var configurationMock = new Mock <IConfiguration>(); var settings = new Mock <ISettings>(); var gardenSize = new GardenSize(gardenLenght, gardenWidth); settings.Setup(x => x.GardenSize).Returns(gardenSize as ISize); var devicePosition = new DevicePosition(yAxis, xAxis, orientation); settings.SetupGet(x => x.DevicePosition).Returns(devicePosition as IPosition); return(settings); }
private void TrackBarTempo_Scroll(object sender, EventArgs e) { DevicePosition position = CachedDevicePosition.cache[trackBarTempo.Value]; lblValoreSelezionatoTrackBar.Text = "Valore selezionato: " + position.time.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"); //ripulisco i punti del grafico del movimento chartMovimentoDevice.Series["Device"].Points.Clear(); //aggiungo la nuova posizione int p = chartMovimentoDevice.Series["Device"].Points.AddXY(position.xPosition, position.yPosition); chartMovimentoDevice.Series["Device"].Points[p].ToolTip = position.time.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"); }
public async Task be_able_turn_90_degrees_clockwise(char currentOrientation, char expectedOrientation) { // arrange IPosition setting = new DevicePosition(5, 5, currentOrientation) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); // act var position = await _device.TurnClockwise(); // assert Assert.AreEqual(expectedOrientation, position.Orientation); }
public async Task move_one_step_forward(char orientation, int expectedY, int expectedX) { // garden: 0 x 0 -> 10 x 10 // starts at: 'N', y:5, x:5 // expects: 'N', y + 1 = 6, x IPosition setting = new DevicePosition(5, 5, orientation) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); var position = _device.CurrentPosition(); IPosition newPosition = await _device.Move(); Assert.AreEqual(expectedY, newPosition.YAxis); Assert.AreEqual(expectedX, newPosition.XAxis); Assert.AreEqual(orientation, newPosition.Orientation); }
public async Task be_able_turn_anti_clockwise_in_sequence(char start, int numberTurns, char expected) { // arrange IPosition setting = new DevicePosition(5, 5, start) as IPosition; _initialSettingsMock.Setup(x => x.DevicePosition).Returns(setting); _buffer = new DeviceBuffer(); _device = new SLMMDevice(_initialSettingsMock.Object, _buffer, _actuator); IPosition position = _device.CurrentPosition(); // act for (int i = 0; i < numberTurns; i++) { position = await _device.TurnCounterClockwise(); } // assert Assert.AreEqual(expected, position.Orientation); }
private void BoxDevice_SelectedIndexChanged(object sender, EventArgs e) { string device = boxDevice.Text; DateTime dateMin = dateTimePickerDateMin.Value.ToUniversalTime(); DateTime dateMax = dateTimePickerDateMax.Value.ToUniversalTime(); CachedDevicePosition.cache.Clear(); int i = 0; foreach (DevicePosition position in dbManager.deviceMovement(device, dateMin, dateMax)) { CachedDevicePosition.cache.Add(i, position); i++; } trackBarTempo.Enabled = true; lblValoreMassimoTrackbar.Visible = true; lblValoreMinimoTrackbar.Visible = true; lblValoreSelezionatoTrackBar.Visible = true; trackBarTempo.Minimum = 0; trackBarTempo.Maximum = CachedDevicePosition.cache.Count - 1; trackBarTempo.Value = CachedDevicePosition.cache.Count - 1; lblValoreMinimoTrackbar.Text = "Valore minimo: " + CachedDevicePosition.cache[0].time.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"); lblValoreMassimoTrackbar.Text = "Valore massimo: " + CachedDevicePosition.cache[CachedDevicePosition.cache.Count - 1].time.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"); lblValoreSelezionatoTrackBar.Text = "Valore selezionato: " + CachedDevicePosition.cache[CachedDevicePosition.cache.Count - 1].time.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"); //disegno il primo punto //ripulisco i punti del grafico del movimento chartMovimentoDevice.Series["Device"].Points.Clear(); DevicePosition devicePosition = CachedDevicePosition.cache[CachedDevicePosition.cache.Count - 1]; //aggiungo la nuova posizione int p = chartMovimentoDevice.Series["Device"].Points.AddXY(devicePosition.xPosition, devicePosition.yPosition); chartMovimentoDevice.Series["Device"].Points[p].ToolTip = devicePosition.time.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"); }
internal DevicePosition[] loadDevicesPositions(string roomName, DateTime fromdate, string fromtime, DateTime todate, string totime) { LinkedList <DevicePosition> li = new LinkedList <DevicePosition>(); Dictionary <String, DevicePosition> prepos = new Dictionary <String, DevicePosition>(); using (ConnectionHandle conn = new ConnectionHandle(connectionpool, connectionstring, false)) { String query = "select identifier,xpos,ypos,tm,outmovement,uncertainty from devicespositions where roomname=@roomname and tm>=@tmstart and tm<=@tmend order by tm asc"; try { if (!connectioncheck(conn)) { throw new Exception("Connection is not open"); } using (var cmd = new NpgsqlCommand(query, conn.conn)) { addParameters(cmd, "roomname", roomName, "tmstart", new DateTime(fromdate.Year, fromdate.Month, fromdate.Day, Convert.ToInt32(fromtime.Split(':')[0]), Convert.ToInt32(fromtime.Split(':')[1]), 0), "tmend", new DateTime(todate.Year, todate.Month, todate.Day, Convert.ToInt32(totime.Split(':')[0]), Convert.ToInt32(totime.Split(':')[1]), 0)); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { DevicePosition dp = new DevicePosition(); DevicePosition dp2; dp.identifier = reader.GetString(0); dp.xpos = reader.GetDouble(1); dp.ypos = reader.GetDouble(2); dp.timestamp = reader.GetDateTime(3); dp.moveout = reader.GetBoolean(4); dp.uncertainity = reader.GetDouble(5); if (prepos.TryGetValue(dp.identifier, out dp2)) { dp.prexpos = dp2.xpos; dp.preypos = dp2.ypos; prepos[dp.identifier] = dp; } else { dp.prexpos = -1; dp.preypos = -1; prepos.Add(dp.identifier, dp); } if (dp.moveout) { prepos.Remove(dp.identifier); } li.AddLast(dp); } } } } catch (Exception ex) { manageDbException(ex, conn.conn, true); return(null); } } return(li.ToArray <DevicePosition>()); }