Beispiel #1
0
        public void DoReplyGetSystemState()
        {
            byte[] majorVersion = StringToByteArray(Version.Substring(0, 2));
            byte[] minorVersion = StringToByteArray(Version.Substring(3, 2));

            byte[] reply = MsgGetSystemState.GetReply((byte)MidiChannel, (byte)(BoxId + 1), new byte[2] {
                majorVersion[0], minorVersion[0]
            });
            stream.Write(reply, 0, reply.Length);
            MessageSent = string.Format("Sent: {0}", ByteArrayToString(reply));

            const int MixerChannel  = 1;
            const int FaderValue0Db = 0x6B;
            var       channelStrip  = new ChannelStrip(MidiChannel, MixerChannel, FaderValue0Db);
            var       msg           = channelStrip.GetFader()[0].Message;

            stream.Write(msg, 0, msg.Length);
            MessageSent = string.Format("Sent: {0}", ByteArrayToString(msg));

            foreach (MsgNrpn msgNrpn in channelStrip.GetFader())
            {
                stream.Write(msgNrpn.Message, 0, msgNrpn.Message.Length);
                MessageSent = string.Format("Sent: {0}", ByteArrayToString(msgNrpn.Message));
            }
        }
Beispiel #2
0
        public void ReplyGetSystemState()
        {
            const byte MidiChannel = 0x99;
            const byte BoxId       = 0x04;
            string     version     = "01.99";

            byte[] majorVersion = VmQuServer.StringToByteArray(version.Substring(0, 2));
            byte[] minorVersion = VmQuServer.StringToByteArray(version.Substring(3, 2));
            byte[] byVersion    = new byte[2];
            Buffer.SetByte(byVersion, 0, majorVersion[0]);
            Buffer.SetByte(byVersion, 1, minorVersion[0]);

            var reply = MsgGetSystemState.GetReply(MidiChannel, BoxId, byVersion);

            Console.WriteLine(VmQuServer.ByteArrayToString(reply));

            Assert.AreEqual(reply.Length, 13);
            Assert.AreEqual(reply, new byte[] { 0xF0, 0x00, 0x00, 0x1A, 0x50, 0x11, 0x01, 0x00, 0x99, 0x04, majorVersion[0], minorVersion[0], 0xF7 });
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        public void DoConnect()
        {
            try
            {
                byte[] bytes = new byte[256];
                string data  = null;

                IPAddress localAddr = IPAddress.Parse(LocalHost);
                server = new TcpListener(localAddr, QuPort);
                server.Start();
                while (true)
                {
                    Status = "Waiting for a connection... ";

                    TcpClient client = server.AcceptTcpClient();
                    Status = "Connected!";

                    data   = null;
                    stream = client.GetStream();

                    int i;
                    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                    {
                        var command = Commands["DoActiveSensed"];
                        if (ActiveSense.Check4Message(bytes, i) && command.CanExecute(null))
                        {
                            MessageReceived = "Received: DoActiveSensed";
                            command.Execute(null);
                            break;
                        }
                        command = Commands["DoReplyGetSystemState"];
                        if (MsgGetSystemState.Check4Request(bytes, i) && command.CanExecute(null))
                        {
                            MessageReceived = "Received: GetSystemState";
                            command.Execute(null);
                            break;
                        }
                        else
                        {
                            data            = Encoding.ASCII.GetString(bytes, 0, i);
                            MessageReceived = string.Format("Received: {0}", data);

                            data = data.ToUpper();

                            byte[] msg = Encoding.ASCII.GetBytes(data);

                            stream.Write(msg, 0, msg.Length);
                            MessageSent = string.Format("Sent: {0}", data);
                        }
                    }
                    client.Close();
                }
            }
            catch (SocketException e)
            {
                Status = string.Format("SocketException: {0}", e);
            }
            finally
            {
                // Stop listening for new clients.
                server.Stop();
            }
        }
Beispiel #4
0
        public void DoSendRequest(object oData)
        {
            try
            {
                byte[] data = (byte[])oData;

                // Create a TcpClient.
                // Note, for this client to work you need to have a TcpServer
                // connected to the same address as specified by the server, port
                // combination.
                TcpClient client = new TcpClient(LocalHost, QuPort);

                // Get a client stream for reading and writing.
                NetworkStream stream = client.GetStream();

                // Send the message to the connected TcpServer.
                stream.Write(data, 0, data.Length);

                string message = Encoding.ASCII.GetString(data, 0, data.Length);
                Message = string.Format("Sent: {0}", message);

                WindowUtils.DoEvents();
                Thread.Sleep(5000);

                // Receive the TcpServer.response.
                // Buffer to store the response bytes.
                data = new byte[256];

                // Read the first batch of the TcpServer response bytes.
                int bytes = stream.Read(data, 0, data.Length);

                if (MsgGetSystemState.Check4Reply(data, bytes))
                {
                    byte[] dataGetSystemState = new byte[13];
                    Buffer.BlockCopy(data, 0, dataGetSystemState, 0, 13);
                    MidiChannel = BitConverter.ToString(dataGetSystemState, 8, 1);
                    BoxId       = dataGetSystemState[9];
                    OSVersion   = string.Format("{0}.{1}", BitConverter.ToString(dataGetSystemState, 10, 1), BitConverter.ToString(dataGetSystemState, 11, 1));
                    Message     = string.Format("Received: {0}", ByteArrayToString(dataGetSystemState));

                    for (int i = 0; i < 4; i++)
                    {
                        byte[] dataMsgNrpn = new byte[4];
                        Buffer.BlockCopy(data, 13 + i * 4, dataMsgNrpn, 0, 4);
                        Message = string.Format("Received: {0}", ByteArrayToString(dataMsgNrpn));
                    }
                }
                else
                {
                    string responseData = Encoding.ASCII.GetString(data, 0, bytes);
                    Message = string.Format("Received: {0}", responseData);
                }
                // Close everything.
                stream.Close();
                client.Close();
            }
            catch (ArgumentNullException e)
            {
                Message = string.Format("ArgumentNullException: {0}", e);
            }
            catch (SocketException e)
            {
                Message = string.Format("SocketException: {0}", e);
            }
        }
Beispiel #5
0
 public void MessageGetSystemState_Check4Message()
 {
     Assert.IsFalse(MsgGetSystemState.Check4Request(new byte[] { 0xF0, 0x00, 0x00, 0x1A, 0x50, 0x11, 0x01, 0x00, 0x7F, 0x10, 0x01 }, 11));
     Assert.IsFalse(MsgGetSystemState.Check4Request(new byte[] { 0xF0, 0x00, 0x00, 0x1A, 0x50, 0x11, 0x01, 0x00, 0x7F, 0x10, 0x00, 0xF7 }, 12));
     Assert.IsTrue(MsgGetSystemState.Check4Request(new byte[] { 0xF0, 0x00, 0x00, 0x1A, 0x50, 0x11, 0x01, 0x00, 0x7F, 0x10, 0x01, 0xF7 }, 12));
 }