Ejemplo n.º 1
0
    public unsafe void ProccessRecv(byte[] recvBuffer)
    {
        string debugLine = "[" + this.tcpClient.Client.RemoteEndPoint.ToString() + "] : ";

        switch ((int)recvBuffer[0])
        {
        case 1:
            IF_SC100 if_sc100 = (IF_SC100)ByteArrayToStructure(recvBuffer, typeof(IF_SC100));
            string   ipStr    = new string(if_sc100.IP);
            string   timeStr  = new string(if_sc100.time);
            debugLine += ipStr + " " + if_sc100.latitude + " " + if_sc100.longitude + " " + if_sc100.objType + " "
                         + timeStr + " " + if_sc100.objX1 + " " + if_sc100.objY1 + " " + if_sc100.objX2 + " " + if_sc100.objY2 + "\n";
            break;

        case 2:
            IF_SC200 if_sc200 = (IF_SC200)ByteArrayToStructure(recvBuffer, typeof(IF_SC200));
            debugLine += "\n";
            break;

        case 3:
            IF_SC300 if_sc300 = (IF_SC300)ByteArrayToStructure(recvBuffer, typeof(IF_SC300));
            debugLine += "\n";
            break;

        default:
            Debug.Log("recv wrong data " + recvBuffer[0]);
            break;
        }

        logText.text += debugLine;
        scrollRect.verticalNormalizedPosition = 0.0f;

        Debug.Log(debugLine);
    }
Ejemplo n.º 2
0
    private static byte[] StructureToByteArray(IF_SC200 if_sc200)
    {
        byte[]   bb  = new byte[Marshal.SizeOf(if_sc200)];
        GCHandle gch = GCHandle.Alloc(bb, GCHandleType.Pinned);

        Marshal.StructureToPtr(if_sc200, gch.AddrOfPinnedObject(), false);
        gch.Free();
        return(bb);
    }