private void LoadMouseData()
        {
            byte[] data = null;

            while (true)
            {
                if (SDMemoryCard.IsCardInserted && SDMemoryCard.IsCardMounted)
                {
                    data = SDMemoryCard.ReadFile("MouseData");
                    break;
                }

                Thread.Sleep(2000);
            }

            if (data != null)
            {
                String   mouseData  = new String(Encoding.UTF8.GetChars(data));
                String[] cordinates = mouseData.Split(new char[] { ' ' }, 2);
                Debug.Print("Lette X -> " + cordinates[0] + "  Y -> " + cordinates[1]);

                if (mouse != null)
                {
                    lastWrittenX = Int32.Parse(cordinates[0]);
                    lastWrittenY = Int32.Parse(cordinates[1]);
                    mouse.SetPosition(lastWrittenX, lastWrittenY);
                }
            }

            mouseFirstConnect = false;
        }
예제 #2
0
        private void SenderWorker()
        {
            fileQueue              = new Queue();
            messageIdToFileMap     = new Hashtable();
            waitingGatewayAckFiles = new ArrayList();
            waitingAmazonAckFiles  = new ArrayList();

            while (!SDMemoryCard.IsInitialized)
            {
                Thread.Sleep(3000);
            }

            while (true)
            {
                Thread.Sleep(4500);

                if (fileQueue.Count == 0)
                {
                    Thread.Sleep(30000);
                    CreateFileQueue();
                    continue;
                }

                String fileName = (String)fileQueue.Dequeue();

                // Check if current file is "MouseData"
                if (fileName.Length == 9)
                {
                    continue;
                }

                if (fileName.IndexOf("_") != -1)
                {
                    String newFileName = SDMemoryCard.RenameUnsynchedFile(fileName);
                    if (newFileName != null)
                    {
                        fileQueue.Enqueue(newFileName);
                    }
                    else
                    {
                        fileQueue.Enqueue(fileName);
                    }

                    Thread.Sleep(200);
                    continue;
                }

                if (waitingAmazonAckFiles.Contains(fileName) || waitingGatewayAckFiles.Contains(fileName))
                {
                    Thread.Sleep(100);
                    continue;
                }

                byte[] fileData = SDMemoryCard.ReadFile(fileName);

                Thread.Sleep(200);

                if (fileData != null)
                {
                    ushort messageId = PublishMessage(fileData);

                    if (messageId == 0)
                    {
                        fileQueue.Enqueue(fileName);
                    }
                    else
                    {
                        messageIdToFileMap.Add(messageId, fileName);
                        waitingGatewayAckFiles.Add(fileName);
                    }
                }
            }
        }