public async Task WriteMultipleCoilsAsyncThrowsOnInvalidData(ushort numberOfPoints) { // Arrange var target = new ModbusMaster(new Mock <IModbusTransport>().Object); // Act/Assert await Assert.ThrowsAsync <ArgumentOutOfRangeException>( "data", () => target.WriteMultipleCoilsAsync(1, 0, Enumerable.Repeat(true, numberOfPoints).ToArray())); }
public async Task WriteMultipleCoilsAsyncThrowsOnNullData() { // Arrange var target = new ModbusMaster(new Mock <IModbusTransport>().Object); // Act/Assert await Assert.ThrowsAsync <ArgumentNullException>( "data", () => target.WriteMultipleCoilsAsync(1, 0, null)); }
private async void WriteButton_Click(object sender, EventArgs e) { UIEnabled(bFlg: false); int item_idx = 0; try { int tab_idx = tabControl1.SelectedIndex; TabPage pg = tabControl1.TabPages[tab_idx]; DataGridView mdgv = (DataGridView)pg.Controls[0]; bool[] bits = new bool[TargetSensor.CoilsMaps.Count]; foreach (typeBase coilsMap in TargetSensor.CoilsMaps) { string text = mdgv[1, item_idx].Value.ToString(); if (text == null || text == "") { throw new Exception(mdgv[0, item_idx].Value.ToString() + " parameter empty"); } if (!coilsMap.ToValue(text)) { throw new Exception(mdgv[0, item_idx].Value.ToString() + " parameter error"); } if (((typeCh)coilsMap).bit == 1) { bits[item_idx] = true; } else { bits[item_idx] = false; } item_idx++; } await Master.WriteMultipleCoilsAsync((byte)devno, (ushort)TargetSensor.CoilAddress, bits); ReadButton_Click(null, null); } catch (SlaveException) { MessageBox.Show("Device error response."); } catch (Exception ex2) { if (ex2.Message != null) { MessageBox.Show(ex2.Message); } else { MessageBox.Show("Parameter error."); } } UIEnabled(bFlg: true); }