Example #1
0
        // Send ack or nack
        private void SendResult(System.Net.IPEndPoint sender, BacnetBvlcResults ResultCode)
        {
            byte[] b = new byte[6];
            First4BytesHeaderEncode(b, BacnetBvlcFunctions.BVLC_RESULT, 6);
            b[4] = (byte)(((ushort)ResultCode & 0xFF00) >> 8);
            b[5] = (byte)((ushort)ResultCode & 0xFF);

            MyBBMDTransport.Send(b, 6, sender);
        }
Example #2
0
        // Send ack or nack
        private void SendResult(IPEndPoint sender, BacnetBvlcResults resultCode)
        {
            var b = new byte[6];

            First4BytesHeaderEncode(b, BacnetBvlcFunctions.BVLC_RESULT, 6);
            b[4] = (byte)(((ushort)resultCode & 0xFF00) >> 8);
            b[5] = (byte)((ushort)resultCode & 0xFF);

            _myBbmdTransport.Send(b, 6, sender);
        }
Example #3
0
        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() });
                }
            }

            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() });
                }
            }
            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;
                lbBBMDlInfo.Text    = "Write Broadcast Table Rejected";
            }
            if ((function == BacnetBvlcFunctions.BVLC_RESULT) && (result == BacnetBvlcResults.BVLC_RESULT_READ_FOREIGN_DEVICE_TABLE_NAK))
            {
                ldlFDRInfo.Visible = true;
                ldlFDRInfo.Text    = "Read FDR Table Rejected";
            }
        }