public async Task ReadCoilsAsyncThrowsOnInvalidNumberOfPoints(ushort numOfPoints)
        {
            // Arrange
            var target = new ModbusMaster(new Mock <IModbusTransport>().Object);

            // Act/Assert
            await Assert.ThrowsAsync <ArgumentOutOfRangeException>(
                "numberOfPoints",
                () => target.ReadCoilsAsync(1, 0, numOfPoints));
        }
Exemple #2
0
    private async void ReadButton_Click(object sender, EventArgs e)
    {
        UIEnabled(bFlg: false);
        try
        {
            int    tab_idx = tabControl1.SelectedIndex;
            bool[] task    = await Master.ReadCoilsAsync((byte)devno, (ushort)TargetSensor.CoilAddress, (ushort)TargetSensor.CoilsMaps.Count);

            int item_idx2 = 0;
            foreach (typeBase coilsMap in TargetSensor.CoilsMaps)
            {
                if (task[item_idx2])
                {
                    ((typeCh)coilsMap).bit = 1;
                }
                else
                {
                    ((typeCh)coilsMap).bit = 0;
                }
                item_idx2++;
            }
            TabPage      pg   = tabControl1.TabPages[tab_idx];
            DataGridView mdgv = (DataGridView)pg.Controls[0];
            item_idx2 = 0;
            foreach (typeBase coilsMap2 in TargetSensor.CoilsMaps)
            {
                mdgv[1, item_idx2].Value = coilsMap2.ToString();
                item_idx2++;
            }
        }
        catch (SlaveException)
        {
            MessageBox.Show("Device error response.");
        }
        catch (Exception ex2)
        {
            if (ex2.Message != null)
            {
                MessageBox.Show(ex2.Message);
            }
            else
            {
                MessageBox.Show("Error");
            }
        }
        UIEnabled(bFlg: true);
    }