void Bvlc_MessageReceived(System.Net.IPEndPoint sender, BacnetBvlcFunctions function, BacnetBvlcResults result, object data)
{
if (!sender.Equals(BBMDep))
{
return; // don't care
}
if (InvokeRequired) // GUI call back
{
BeginInvoke(new Action <System.Net.IPEndPoint, BacnetBvlcFunctions, BacnetBvlcResults, object>(Bvlc_MessageReceived), new object[] { sender, function, result, data });
return;
}
if (function == BacnetBvlcFunctions.BVLC_READ_BROADCAST_DIST_TABLE_ACK) // an table (could be empty)
{
List <Tuple <IPEndPoint, IPAddress> > Entries = (List <Tuple <IPEndPoint, IPAddress> >)data;
BBMDTable.Rows.Clear();
foreach (Tuple <IPEndPoint, IPAddress> tpl in Entries)
{
BBMDTable.Rows.Add(new object[] { tpl.Item1.Address.ToString(), tpl.Item1.Port, tpl.Item2.ToString() });
}
lbBBMDlInfo.Visible = false;
}
if (function == BacnetBvlcFunctions.BVLC_READ_FOREIGN_DEVICE_TABLE_ACK)
{
List <Tuple <IPEndPoint, ushort, ushort> > Entries = (List <Tuple <IPEndPoint, ushort, ushort> >)data;
FDRTable.Rows.Clear();
foreach (Tuple <IPEndPoint, ushort, ushort> tpl in Entries)
{
FDRTable.Rows.Add(new object[] { tpl.Item1.ToString(), tpl.Item2.ToString(), tpl.Item3.ToString() });
}
lbFDRInfo.Visible = false;
}
if ((function == BacnetBvlcFunctions.BVLC_RESULT) && (result == BacnetBvlcResults.BVLC_RESULT_SUCCESSFUL_COMPLETION) && (WriteInOperation))
{
WriteInOperation = false;
transport.Bvlc.SendReadBroadCastTable(BBMDep);
}
if ((function == BacnetBvlcFunctions.BVLC_RESULT) && (result == BacnetBvlcResults.BVLC_RESULT_READ_BROADCAST_DISTRIBUTION_TABLE_NAK))
{
lbBBMDlInfo.Visible = true;
lbBBMDlInfo.Text = "Read Broadcast Table Rejected";
}
if ((function == BacnetBvlcFunctions.BVLC_RESULT) && (result == BacnetBvlcResults.BVLC_RESULT_WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK) && (WriteInOperation))
{
lbBBMDlInfo.Visible = true;
WriteInOperation = false;
lbBBMDlInfo.Text = "Write Broadcast Table Rejected";
}
if ((function == BacnetBvlcFunctions.BVLC_RESULT) && (result == BacnetBvlcResults.BVLC_RESULT_READ_FOREIGN_DEVICE_TABLE_NAK))
{
lbFDRInfo.Visible = true;
lbFDRInfo.Text = "Read FDR Table Rejected";
}
}