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; }
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); } } } }