예제 #1
0
    public void StartClient()
    {
        // Connect to a remote device.
        try {
            // Establish the remote endpoint for the socket.
            // The name of the
            // remote device is "host.contoso.com".
            IPEndPoint remoteEP = new IPEndPoint(iPAddress, port);

            //// Create a TCP/IP socket.
            client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            // Connect to the remote endpoint.
            client.BeginConnect(remoteEP,
                                new AsyncCallback(ConnectCallback), client);
            connectDone.WaitOne();

            // Send test data to the remote device.
            publicPostData clientPostData = new publicPostData();
            clientPostData.packet_Type = (int)ClientPacketType.LoadBLEList;
            clientPostData.data        = 0;
            Send(client, Packet.Serialize(clientPostData));
            sendDone.WaitOne();

            // Receive the response from the remote device.
            Receive(client);
            //receiveDone.WaitOne();

            // Write the response to the console.
            Console.WriteLine("Response received : {0}", response);
        } catch (Exception e) {
            Console.WriteLine(e.ToString());
        }
    }
예제 #2
0
        private void ProcessPacket(int packet_Type, byte[] buffer)
        {
            switch (packet_Type)
            {
            case (int)ClientPacketType.LoadBLEList: {
                Console.WriteLine("LoadBLEList");
                while (true)
                {
                    if (comboBox1.Items.Count != 0)
                    {
                        break;
                    }
                    BLEList();
                }

                ServerBLEList serverPostData = new ServerBLEList();
                serverPostData.BLEList = new List <string>();
                foreach (var data in comboBox1.Items)
                {
                    serverPostData.BLEList.Add(data.ToString());
                }
                serverPostData.packet_Type = (int)ServerPacketType.BLEList;
                AsynchronousSocketServer.Send(asyncServer.getSocket(), Packet.Serialize(serverPostData));
            }
            break;

            case (int)ClientPacketType.ConnectBLE: {
                Console.WriteLine("ConnectBLE");
                publicPostData receiveclass = (publicPostData)Packet.Deserialize(buffer);
                comboBox1.SelectedIndex = receiveclass.data;
                ConnectBLE();
            }
            break;

            case (int)ClientPacketType.AuthBLE: {
                Console.WriteLine("AuthBLE");
                AuthBLE();
            }
            break;

            case (int)ClientPacketType.StartBLE: {
                Console.WriteLine("StartBLE");
                StartBPM();
            }
            break;

            case (int)ClientPacketType.StopBLE: {
                Console.WriteLine("StopBLE");
                StopBPM();
            }
            break;

            case (int)ClientPacketType.SendPacket: {
                Console.WriteLine("SendPacket");
                //  딱히 쓸일 없을 듯 지금은..!
                publicPostData receiveclass = (publicPostData)Packet.Deserialize(buffer);
            }
            break;
            }
        }
예제 #3
0
 // delegate 처리 함수
 void ConnectChange(bool v)
 {
     if (InvokeRequired)
     {
         ConnectBLEDevice c = new ConnectBLEDevice(ConnectChange);
         Invoke(c, new object[] { v });
     }
     else
     {
         if (v == true)
         {
             // 연결에 성공 했을시
             button3.Enabled = true;
             publicPostData serverPostData = new publicPostData();
             serverPostData.data        = (int)ServerStatus.BLEConnectComplete;
             serverPostData.packet_Type = (int)ServerPacketType.SendPacket;
             AsynchronousSocketServer.Send(asyncServer.getSocket(), Packet.Serialize(serverPostData));
         }
         else
         {
             // 연결에 실패 했을시
             button2.Enabled = true;
         }
     }
 }
예제 #4
0
 public void buttonClick()
 {
     //dropdown.te
     Debug.Log(":dd");
     if (dropdownText.text == "연결하기")
     {
         Debug.Log(dropdown.options[dropdown.value].text + "( " + dropdown.value + ")");
         publicPostData clientPostData = new publicPostData();
         clientPostData.packet_Type = (int)ClientPacketType.ConnectBLE;
         clientPostData.data        = dropdown.value;
         NetworkManager.Send(NetworkManager.GetSocket(), Packet.Serialize(clientPostData));
         dropdownText.text = "일시정지";
     }
     else if (dropdownText.text == "일시정지")
     {
         publicPostData clientPostData = new publicPostData();
         clientPostData.packet_Type = (int)ClientPacketType.StopBLE;
         clientPostData.data        = 0;
         NetworkManager.Send(NetworkManager.GetSocket(), Packet.Serialize(clientPostData));
         dropdownText.text = "다시시작";
     }
     else if (dropdownText.text == "다시시작")
     {
         publicPostData clientPostData = new publicPostData();
         clientPostData.packet_Type = (int)ClientPacketType.StartBLE;
         clientPostData.data        = 0;
         NetworkManager.Send(NetworkManager.GetSocket(), Packet.Serialize(clientPostData));
         dropdownText.text = "일시정지";
     }
 }
예제 #5
0
    private static void ProcessPacket(int packet_Type, byte[] buffer)
    {
        switch (packet_Type)
        {
        case (int)ServerPacketType.BLEList: {
            Debug.Log("BLEList : ");
            ServerBLEList receiveclass = (ServerBLEList)Packet.Deserialize(buffer);
            foreach (var data in receiveclass.BLEList)
            {
                _bleList.Add(data);
                Debug.Log(data.ToString());
            }
        }
        break;

        case (int)ServerPacketType.BPMData: {
            Debug.Log("BPMData : ");
            ServerBPMData receiveclass = (ServerBPMData)Packet.Deserialize(buffer);
            _nowBPM = receiveclass.nowBPM.ToString();
        }
        break;

        case (int)ServerPacketType.SendPacket: {
            Debug.Log("SendPacket : ");
            publicPostData receiveclass = (publicPostData)Packet.Deserialize(buffer);

            if (receiveclass.data == (int)ServerStatus.BLEConnectComplete)
            {
                // BLE 연결에 성공 했을 경우
                publicPostData clientPostData = new publicPostData();
                clientPostData.packet_Type = (int)ClientPacketType.AuthBLE;
                clientPostData.data        = 0;
                Send(client, Packet.Serialize(clientPostData));
            }
            else if (receiveclass.data == (int)ServerStatus.BLEAuthComplete)
            {
                // Auth 성공 했을 경우
                publicPostData clientPostData = new publicPostData();
                clientPostData.packet_Type = (int)ClientPacketType.StartBLE;
                clientPostData.data        = 0;
                Send(client, Packet.Serialize(clientPostData));
            }
        }
        break;
        }
    }
예제 #6
0
 // delegate 처리 함수
 void OnAuth(MiBand d, bool s)
 {
     if (InvokeRequired)
     {
         OnAuthHandler c = new OnAuthHandler(OnAuth);
         Invoke(c, new object[] { d, s });
     }
     else
     {
         if (s)
         {
             // 연결에 성공 했을시
             button4.Enabled = true;
             publicPostData serverPostData = new publicPostData();
             serverPostData.data        = (int)ServerStatus.BLEAuthComplete;
             serverPostData.packet_Type = (int)ServerPacketType.SendPacket;
             AsynchronousSocketServer.Send(asyncServer.getSocket(), Packet.Serialize(serverPostData));
         }
         else
         {
             MessageBox.Show("Auth failed !", "Device error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }