/// <summary> /// Sends the message write. /// </summary> /// <returns>The message write.</returns> /// <param name="page">Page.</param> /// <param name="srdoPara">Srdo para.</param> /// <param name="myDest">My destination.</param> internal async Task SendMessageWrite(uint page, SRDOWriteParameterized[] srdoPara, byte myDest = REM.Constants.DBC_DESTINATION_TYPE) { if (dbc != null) { var buffer = new List <byte>(); buffer.Add(Convert.ToByte(page)); for (int i = 0, srdoParaLength = srdoPara.Length; i < srdoParaLength; i++) { SRDOWriteParameterized srdoLocal = srdoPara[i]; buffer.AddRange(BitConverter.GetBytes(srdoLocal.SRDO)); buffer.AddRange(BitConverter.GetBytes(srdoLocal.P1)); buffer.AddRange(BitConverter.GetBytes(srdoLocal.P2)); buffer.AddRange(BitConverter.GetBytes(srdoLocal.P3)); buffer.AddRange(BitConverter.GetBytes(srdoLocal.Length)); buffer.AddRange(srdoLocal.Data); } await dbc.SendSRDOMessage( REM.Constants.REM_WRITE_DATA_PARA, buffer.ToArray(), REM.Constants.DBC_WILDCARD_ADDRESS, 0xFF, myDest); } else { Console.WriteLine("DBC init failed; - SendMessageWrite"); } }
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)