Я уже отправил вопрос сегодня.Этот вопрос о том же проекте, но не связан.Я занимаюсь разработкой приложения для робота Lego NXT Mindstorm.У меня есть два робота и графический пользовательский интерфейс, работающий на ПК.
В leJOS NXJ вы можете использовать только один считыватель ввода.Это означает, что вы не можете подключить ПК к двум роботам напрямую и позволить двум роботам подключаться друг к другу напрямую.Так вот что я сделал.Я подключил ПК к двум роботам напрямую, и когда два робота хотят общаться напрямую, я отправляю их сообщения через графический интерфейс.
Между графическим пользовательским интерфейсом и роботами также существует большая связькак между самими роботами.По этой причине каждый раз, когда я записываю данные в выходной поток, кажется, что некоторые данные перезаписываются другими, и система не работает должным образом.
Мне посоветовали написать класс, который будет содержатьобъект коллекции (Очередь), так что в любое время, когда робот хочет что-то отправить, он добавляет это в коллекцию (Очередь) и из того класса, который содержит объект коллекции, будет метод, позволяющий проверять коллекцию постоянно и всякий раз, когда онне является пустым, он отправляет данные из коллекции в выходной поток.
Это означает, что всякий раз, когда данные из коллекции отправляются в выходной поток, возможно добавление новых данных.
Некоторые люди предлагали мне использовать ArrayBlockQueue и т. Д., Но эти классы недоступны в файле class.jar, который использует робот.
Классы коллекций, которые я знаю в этом jar-файлеявляются векторами и очередью.
Я спрашиваю, может ли кто-нибудь помочь мне, дав мне идеюо том, как реализовать такой класс.Метод в классе будет время от времени проверять наличие данных в коллекции и отправлять их через выходной поток.Во время отправки возможно добавление новых элементов.
Поскольку данные отправляются из одного места, никакие данные не будут перезаписывать другое.Это звучит как хорошая идея.
Все ваши предложения приветствуются.
Спасибо.