Beispiel #1
0
        /// <summary>
        /// Sends the message command dialog.
        /// </summary>
        /// <returns>The message command dialog.</returns>
        /// <param name="sRDO">S rdo.</param>
        /// <param name="myDest">My destination.</param>
        internal async Task SendMessageCommandDialog(SRDOCommand sRDO, byte myDest = REM.Constants.DBC_DESTINATION_TYPE)
        {
            if (dbc != null)
            {
                var buffer = new List <byte>();

                buffer.Add(Convert.ToByte(sRDO.Command));
                buffer.AddRange(BitConverter.GetBytes(sRDO.ArgumentLength));
                buffer.AddRange(sRDO.Argument);

                //await dbc.SendReadSRDOWriteParameterized(buffer.ToArray());
                await dbc.SendSRDOMessage(
                    REM.Constants.REM_DIALOG_COMMAND,
                    buffer.ToArray(),
                    REM.Constants.DBC_WILDCARD_ADDRESS,
                    0xFF,
                    myDest);
            }
            else
            {
                Console.WriteLine("DBC init failed; - SendMessageCommandDialog");
            }
        }


        public async Task WriteSrdo()
        {
            SRDOWrite srdo1 = new SRDOWrite();
            SRDOWrite srdo2 = new SRDOWrite();
            List<SRDOWrite> srdoList = new List<SRDOWrite>();
             
            srdo1.SRDO = 101;
            srdo1.Length = 1;
            byte[] wData = { 2 };
            srdo1.Data = wData;

            srdo2.SRDO = 102;
            srdo2.Length = 1;
            byte[] wDataA = { 3 };
            srdo2.Data = wDataA;

            srdoList.Add(srdo1);
            srdoList.Add(srdo2);

           // UpdateTextView("Sending SRDO WRITE: #101 D:2 #102 D:3 " );

            await PortSwitch.SrdoLocal.SendMessageWrite(0, srdoList.ToArray(), 0x01);

            //UpdateTextView("Sending SRDO READ: #101, #102");
            uint[] rdoW = { 101, 102 };
            await PortSwitch.SrdoLocal.SendMessageRead(0, rdoW, 0x01);
        }

        public async Task Command()
        {
            //byte[] cR = {0x00, 0x00, 0x01, 0x01};
            byte[] cR = { 0x15, 0x00 };
            SRDOCommand srdoC = new SRDOCommand()
            {
                Command = 2,
                ArgumentLength = 2,
                Argument = cR
            };

            //UpdateTextView("Sending COMMAND DIALOG: Command->2 Argument-> 0, 0, 1, 1" );
            await PortSwitch.SrdoLocal.SendMessageCommandDialog(srdoC, 0x01);
        }

        public async Task RTD()
        {
            uint[] srdo = { 0, 1, 2, 3, 4, 5, 6 };

            RTDStart rtd = new RTDStart()
            {
                Type = 5,
                PollRate = 0,
                Page = 2,
                Srdo = srdo
            };

            //UpdateTextView("Sending Start RTD for SRDO 0,1,2,3,4,5,6 ");
            await PortSwitch.SrdoLocal.SendMessageRTDStart(rtd, 0x01);


            await RTDStopTimerAsync();

        }

        public async Task ReadSrdoPara()
        {
            SRDOReadParameterized srdoPara1 = new SRDOReadParameterized
            {
                SRDO = 1117,
                P1 = 0,
                P2 = 2,
                P3 = 0
            };

            //UpdateTextView("Sending READ SRDO Parameterized: " + srdoPara1.SRDO +
                //" P1 " + srdoPara1.P1 +
                //" P2 " + srdoPara1.P2 +
                //" P3 " + srdoPara1.P3);


            SRDOReadParameterized srdoPara4 = new SRDOReadParameterized
            {
                SRDO = 1117,
                P1 = 0,
                P2 = 4,
                P3 = 0
            };

            //UpdateTextView("Sending READ SRDO Parameterized: " + srdoPara4.SRDO +
                //" P1 " + srdoPara4.P1 +
                //" P2 " + srdoPara4.P2 +
                //" P3 " + srdoPara4.P3);

            SRDOReadParameterized[] srdoList = { srdoPara1, srdoPara4 };
            await PortSwitch.SrdoLocal.SendMessageRead(0, srdoList, 0x01);
        }

        public async Task WriteSrdoPara()
        {
            byte[] writePara = { 0x07 };
            byte[] writePara1 = { 0x05, 0x09 };


            SRDOWriteParameterized srdoPara1 = new SRDOWriteParameterized
            {
                SRDO = 1117,
                P1 = 0,
                P2 = 2,
                P3 = 0,
                Length = 1,
                Data = writePara
            };

           //UpdateTextView("Sending WRITE SRDO Parameterized: " + srdoPara1.SRDO +
                //" P1 " + srdoPara1.P1 +
                //" P2 " + srdoPara1.P2 +
                //" P3 " + srdoPara1.P3 +
                //" Data " + ByteArrayToString(srdoPara1.Data));

            SRDOWriteParameterized srdoPara2 = new SRDOWriteParameterized
            {
                SRDO = 1117,
                P1 = 0,
                P2 = 4,
                P3 = 0,
                Length = 2,
                Data = writePara1
            };

            //UpdateTextView("Sending WRITE SRDO Parameterized: " + srdoPara2.SRDO +
                //" P1 " + srdoPara2.P1 +
                //" P2 " + srdoPara2.P2 +
                //" P3 " + srdoPara2.P3 +
                //" Data " + ByteArrayToString(srdoPara2.Data));

            SRDOWriteParameterized[] srdoList = { srdoPara1, srdoPara2 };
            await PortSwitch.SrdoLocal.SendMessageWrite(0, srdoList, 0x01);
        }

        public async Task RTDStopTimerAsync()
        {

            await Task.Delay(5000);
           //UpdateTextView("Sending Stop RTD for 0,1,2,3,4,5,6 ");
            await PortSwitch.SrdoLocal.SendMessageRTDStop(0x01);
        }

        public override void TouchesBegan(NSSet touches, UIEvent evt)