powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Android Usb Serial Port
25 сообщений из 150, страница 3 из 6
Android Usb Serial Port
    #39313987
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кто-нибудь знает, в чем беда?
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314272
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennady345неправильно считываются данные из буфера
Битность, четность не настроены?

Gennady345и виснет еще
Ну... Придется пользоваться отладчиком.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314440
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
суть такая, что я переключаю между смартфоном и контроллером, и получается отладчик при работе с устройством не посмотришь. флаги установил. когда отправляю, на контроллере срабатывает прерывание, а вот обратно подвисает и выводит иногда странную последовательность. взял две верхние библиотеки, одно и тоже при чтении.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314443
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на контроллере vcom реализован.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314472
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennady345,

genymotion позволяет пробрасывать порты с компа в андроид. Там и отладка будет приятнее.
Мусор обычно и приходит, если битность и четность не указать.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314473
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На компе нормально работает? Проблема только в андроиде?
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314486
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так, в genymotion я не работал, если эмулировал, то на AVD. а в AVD есть проброс портов? а то что-то не находил.

вот тут нахожу устройство, флаг ставлю 0, больше параметров не находится

for(int i = 0; i < paths.length; i++) {
if(paths[i].equals("/dev/ttyACM0")) {
mSerialPort = new SerialPort(new File(paths[i]), 115200, 0);
break;
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314494
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
когда проводил отладку, то без подключения контроллера на реальном устройстве. потом отключал и подключал контроллер. по сути, работает, но при приеме вот этот мусор. и все!
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314497
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennady345,

в первом сообщении темы есть флаги настроек порта, которые указываются при создании объекта порта.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314557
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, я их выставил mSerialPort = new SerialPort(new File(paths[i]), 115200, 0);, только тот же результат, пробовал 1, то же самое. а в AVD можно пробросить порты или только в genymotion или в vitrualbox проще?
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314616
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennady345,

1 это только четность.

Совсем нет опыта работы с портами?
Вообще есть рабочий пример кода?
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314623
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
недавно только начал работать с микроконтроллерами. успел только поработать с uart и virtual com на миландре. я еще брал с github, библиотеку usbserial, там я четко прописывал настройки порта. все-равно приходит мусор.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314624
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто когда делаю OutputStream на контроллере Миландр в отладке норм приходит, а обратно нет.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314625
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выбирал библиотеку AcmCdc, все-равно мусор. в понедельник на работе еще попробую.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314636
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я еще брал приложение с google serial_api, там тоже байты теряются....
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39314659
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все таки стоит попробовать начать играться с компьютера.
Только затем перебраться на андроид.
Разница не большая, но отладка на ББ проще.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39315034
Максим Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую форумчан, с программированием никак не найду общий язык, поэтому обращаюсь к тем, кто разбирается в этом, с просьбой- "делаю" себе приложение, с использованием всяких учебников и нескольких примеров исходников с github, кое в чем разобрался, конечно, но в основном нет. Прошу помочь переделать класс чтения/записи с устройства "ioio", на класс чтения/записи через обычный serialport с сохранением функционала.


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
package net.littlebigisland.droidibus.ibus;
/**
 * IBusService
 * Communicate with the IBus using the IOIO
 * All Read/Writes are done here
 * 
 * @author Ted S <tass2001@gmail.com>;
 * @package net.littlebigisland.droidibus.ibus.IBusMessageService
 * 
 */
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;

import net.littlebigisland.droidibus.ibus.systems.BoardMonitorSystem;
import net.littlebigisland.droidibus.ibus.systems.BroadcastSystem;
import net.littlebigisland.droidibus.ibus.systems.FrontDisplay;
import net.littlebigisland.droidibus.ibus.systems.GlobalBroadcastSystem;
import net.littlebigisland.droidibus.ibus.systems.GFXNavigationSystem;
import net.littlebigisland.droidibus.ibus.systems.IKESystem;
import net.littlebigisland.droidibus.ibus.systems.RadioSystem;
import net.littlebigisland.droidibus.ibus.systems.SteeringWheelSystem;
import net.littlebigisland.droidibus.ibus.systems.TelephoneSystem;

import ioio.lib.api.DigitalOutput;
import ioio.lib.api.IOIO;
import ioio.lib.api.Uart;
import ioio.lib.api.exception.ConnectionLostException;
import ioio.lib.util.BaseIOIOLooper;
import ioio.lib.util.IOIOLooper;
import ioio.lib.util.android.IOIOService;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;

@SuppressLint("UseSparseArrays")
public class IBusMessageService extends IOIOService{
    
    private final static String TAG = "DroidIBus::IBusMessageService";
    
    private final IBinder mBinder = new IOIOBinder();
    private ArrayList<IBusCommand> mCommandQueue = new ArrayList<IBusCommand>();
    
    private Map<Byte, IBusSystem> IBusSysMap = new HashMap<Byte, IBusSystem>();

    private Map<Byte, String> mDeviceLookup = new HashMap<Byte, String>();
    private boolean mIsIOIOConnected = false;
    private int mClientsConnected = 0;
    
    
    public class IOIOBinder extends Binder{
        public IBusMessageService getService(){
            return IBusMessageService.this;
        }
    }
    
    /**
     * This is the thread on which all the IOIO activity happens. The
     * setup() method will be called right after a connection with the IOIO has
     * been established, which might happen several times! After loop() will
     * be called repetitively until the IOIO is disconnected.
     */
    @Override
    protected IOIOLooper createIOIOLooper(){
        return new BaseIOIOLooper(){
            
            private Uart IBusConn;
            private InputStream busIn;
            private OutputStream busOut;
            
            private DigitalOutput statusLED;
            private DigitalOutput faultPin;
            private DigitalOutput chipSelectPin;
            
            private static final int IBUS_RX_PIN = 10;
            private static final int IBUS_TX_PIN = 13;
            private static final int IBUS_CS_PIN = 11;
            private static final int IBUS_ER_PIN = 12;
            
            // Set the IBus message protocol byte indexes
            private static final int MSG_SRC_IDX = 0;
            private static final int MSG_LEN_IDX = 1;
            private static final int MSG_DEST_IDX = 2;
            
            // Settings in milliseconds
            private static final int BUFFER_TIMEOUT = 75;
            private static final int SEND_WAIT = 100;

            private int msgLength = 0;
            
            private long lastRead;
            private long lastSend;

            private ArrayList<Byte> readBuffer = new ArrayList<Byte>();
            
            /**
             * Called every time a connection with IOIO has been established.
             * Setup the connection to the IBus using the MCP2004
             * 
             * @throws ConnectionLostException When IOIO connection is lost.
             */
            @Override
            protected void setup() throws ConnectionLostException, InterruptedException{
                Log.d(TAG, "IOIO Setup");
                IBusConn = ioio_.openUart(
                    IBUS_RX_PIN, IBUS_TX_PIN, 9600, 
                    Uart.Parity.EVEN, Uart.StopBits.ONE
                );
                statusLED = ioio_.openDigitalOutput(IOIO.LED_PIN, true);
                /* Set these HIGH per the MCP2004 data sheet. 
                 * Not required so long as you put a 10k 
                 * resistor from 3.3V to pin 2 */
                chipSelectPin = ioio_.openDigitalOutput(IBUS_CS_PIN, true);
                chipSelectPin.write(true);
                
                faultPin = ioio_.openDigitalOutput(IBUS_ER_PIN, true);
                faultPin.write(true);
                
                busIn = IBusConn.getInputStream();
                busOut = IBusConn.getOutputStream();
                
                lastRead = getTime();
                // Add 250ms to prevent bus spam 
                lastSend = getTime() + 250;
                mIsIOIOConnected = true;
            }
            
            /**
             * Called repetitively while the IOIO is connected.
             * Reads and writes to the IBus
             * 
             * @throws ConnectionLostException When IOIO connection is lost.
             * @see ioio.lib.util.AbstractIOIOActivity.IOIOThread#loop()
             */
            @Override
            public void loop() throws ConnectionLostException, InterruptedException{
                long timeNow = getTime();
                long lastCmdSent = timeNow - lastSend;
                long lastCmdRead = timeNow - lastRead;
                // Clear the buffer if we don't get data for 75ms
                if(lastCmdRead >= BUFFER_TIMEOUT && !readBuffer.isEmpty()){
                    logBufferError("Buffer Timeout", readBuffer);
                    readBuffer.clear();
                }
                try{
                    // Read into buffer when bytes are available
                    if(busIn.available() > 0){
                        statusLED.write(true);
                        lastRead = getTime();
                        readBuffer.add((byte) busIn.read());

                        if(readBuffer.size() > 1){
                            if(readBuffer.size() == 2){
                                msgLength = (int)readBuffer.get(MSG_LEN_IDX);
                                if(msgLength <= 0){
                                    Log.e(TAG, "Invalid buffer size: " + msgLength);
                                    readBuffer.clear();
                                }
                            }
                            if(readBuffer.size() > msgLength + 2){
                                logBufferError("Buffer too large", readBuffer);
                                readBuffer.clear();
                            }
                            // Read until buffer size equals the message length
                            if(readBuffer.size() == msgLength + 2){
                                handleMessage(readBuffer);
                                readBuffer.clear();
                            }
                        }
                        statusLED.write(false);
                    }else if(!mCommandQueue.isEmpty() && lastCmdSent > SEND_WAIT){
                        statusLED.write(true);
                        // Pop out the command from the Array
                        IBusCommand cmd = mCommandQueue.get(0);
                        // Send the message out
                        byte[] cmdBytes = genOutboundMessage(cmd);
                        // Write the message out to the bus byte by byte
                        for(byte cmdByte: cmdBytes){
                            busOut.write(cmdByte);
                        }
                        Log.d(TAG, 
                            String.format(
                                "Sending Command %s: %s",
                                cmd.commandType.toString(),
                                bytesToString(cmdBytes)
                            )
                        );
                        mCommandQueue.remove(0);
                        lastSend = getTime();
                        statusLED.write(false);
                    }
                }catch(IOException e){
                    Log.e(
                       TAG, String.format("Bus IOException: %s", e.getMessage())
                    );
                }
                Thread.sleep(2);
            }
            
            /**
             * Converts an ArrayList of bytes into a String
             * @param msgBuffer
             * @return String octal representation of bytes
             */
            private String bytesToString(ArrayList<Byte> msgBuffer){
                String data = "";
                for(byte msgByte: msgBuffer){
                    data += String.format("%02X ", msgByte);
                }
                return data;
            }
            
            /**
             * Converts a byte array into a String
             * @param msgBuffer
             * @return String octal representation of bytes
             */
            private String bytesToString(byte[] msgBuffer){
                String data = "";
                for(byte msgByte: msgBuffer){
                    data += String.format("%02X ", msgByte);
                }
                return data;
            }
                
            /**
             * Verify that the IBus Message is not corrupt by 
             * XORing all bytes if correct. The return should be 0x00
             * 
             * @param  msgBuffer  The buffer containing bytes
             * @return true if the message isn't corrupt, otherwise false
             */
            private boolean checksumMessage(ArrayList<Byte> msgBuffer){
                byte cksum = 0x00;
                for(byte msg: msgBuffer){
                    cksum = (byte) (cksum ^ msg);
                }
                return (cksum == 0x00) ? true : false;
            }
            
            /**
             * Called when IOIO disconnects
             */
            @Override
            public void disconnected(){
                Log.d(TAG, "IOIO Disconnect");
                IBusConn.close();
                mIsIOIOConnected = false;
            }
            
            /**
             * Generates bytes for the given message
             * 
             * @param command The IBusCommand object to create bytes for
             * @return Array of bytes containing the message for the bus
             */
            private byte[] genOutboundMessage(IBusCommand command){
                byte[] cmdBytes = new byte[]{};
                // Get the command type enum
                IBusCommand.Commands cmdType = command.commandType;
                // Get the instance of the class which implements this method
                IBusSystem clsInstance = IBusSysMap.get(
                    cmdType.getSystem().toByte()
                );
                // Get the command arguments
                Object cmdArgs = command.commandArgs;
                try{
                    Class<? extends IBusSystem> cls = clsInstance.getClass();
                    String methodName = cmdType.getMethodName();
                    // If cmdArgs is null, this send the method statically.
                    if(cmdArgs == null){
                        Method cmdMethod = cls.getMethod(methodName);
                        cmdBytes = (byte[]) cmdMethod.invoke(clsInstance);
                    }else{
                        Method cmdMethod = cls.getMethod(methodName, Object[].class);
                        cmdBytes = (byte[]) cmdMethod.invoke(clsInstance, cmdArgs);
                    }
                }catch(IllegalAccessException | IllegalArgumentException | 
                        InvocationTargetException | NoSuchMethodException e){
                    Log.e(
                        TAG,
                        String.format(
                            "Error invoking method in outbound queue: %s - %s",
                            e.toString(),
                            e.getMessage()
                        )
                    );
                }
                return cmdBytes;
            }
            
            /**
             * Get the current time in milliseconds
             * @return long Time in milliseconds
             */
            private long getTime(){
                return Calendar.getInstance().getTimeInMillis();
            }
                
            /**
             * Send the message to the correct handler 
             * @param msg
             */
            private void handleMessage(ArrayList<Byte> msg){
                byte src = msg.get(MSG_SRC_IDX);
                byte dest = msg.get(MSG_DEST_IDX);
                if(checksumMessage(msg)){
                    Log.d(TAG, String.format(
                        "Received Message (%s -> %s): %s",
                        mDeviceLookup.get(src), mDeviceLookup.get(dest),
                        bytesToString(msg)
                    ));
                    IBusSystem system = IBusSysMap.get(dest);
                    if(system != null){
                        system.mapReceived(msg);
                    }
                }else{
                    logBufferError("Message failed checksum test", msg);
                }
            }
            
            /**
             * Log buffer errors
             * @param err The error message
             * @param msg The buffer at the time of the error
             */
            private void logBufferError(String err, ArrayList<Byte> msg){
                Log.e(TAG, String.format("%s: %s", err, bytesToString(msg)));
            }
            
            
        };
    }
    
    public boolean getLinkState(){
        return mIsIOIOConnected;
    }
    
    public void registerCallback(IBusSystem.Callbacks cb, Handler handler){
        if(!IBusSysMap.isEmpty()){
            for (IBusSystem sys: IBusSysMap.values()){
                sys.registerCallback(cb, handler);
            }
        }
    }
    
    /**
     * Add an action into the queue of message waiting to be sent
     * @param cmd IBusCommand instance to be performed
     */
    public void sendCommand(IBusCommand cmd){
        mCommandQueue.add(cmd);
    }
    
    public void unregisterCallback(IBusSystem.Callbacks cb){
        if(!IBusSysMap.isEmpty()){
            for (IBusSystem sys: IBusSysMap.values()){
                sys.unregisterCallback(cb);
            }
        }
    }
    
    @Override
    public IBinder onBind(Intent intent){
        mClientsConnected++;
        return mBinder;
    }
    
    @Override
    public void onDestroy(){
        super.onDestroy();
        Log.d(TAG, "onDestroy()");
    }
    
    @Override
    public int onStartCommand(Intent intent, int flags, int startId){
        super.onStartCommand(intent, flags, startId);
        Log.d(TAG, "onStartCommand()");
        if(mDeviceLookup.isEmpty()){
            for(IBusSystem.Devices d : IBusSystem.Devices.values()){
                mDeviceLookup.put(d.toByte(), d.name());
            }
        }
        // Initiate values for IBus System handlers
        if(IBusSysMap.isEmpty()){
            Log.d(TAG, "Filling IBus System Map");
            IBusSysMap.put(
                IBusSystem.Devices.BoardMonitor.toByte(),
                new BoardMonitorSystem()
            );
            IBusSysMap.put(
                IBusSystem.Devices.Broadcast.toByte(),
                new BroadcastSystem()
            );
            IBusSysMap.put(
                IBusSystem.Devices.FrontDisplay.toByte(),
                new FrontDisplay()
            );
            IBusSysMap.put(
                IBusSystem.Devices.GFXNavigationDriver.toByte(),
                new GFXNavigationSystem()
            );
            IBusSysMap.put(
                IBusSystem.Devices.GlobalBroadcast.toByte(),
                new GlobalBroadcastSystem()
            );
            IBusSysMap.put(
                IBusSystem.Devices.InstrumentClusterElectronics.toByte(),
                new IKESystem()
            );
            IBusSysMap.put(
                IBusSystem.Devices.Radio.toByte(),
                new RadioSystem()
            );
            IBusSysMap.put(
                IBusSystem.Devices.MultiFunctionSteeringWheel.toByte(),
                new SteeringWheelSystem()
            );
            IBusSysMap.put(
                IBusSystem.Devices.Telephone.toByte(),
                new TelephoneSystem()
            );
        }
        return START_STICKY;
    }
    
    @Override
    public boolean onUnbind(Intent intent){
        super.onUnbind(intent);
        Log.d(TAG, "onUnbind()");
        mClientsConnected--;
        if(mClientsConnected == 0){
            stopSelf();
        }
        return false;
    }

}

...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39315089
Максим Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно, почему обращаюсь с просьбой, т.к. приложение пишу для себя, занимаюсь им уже год в свободное время, с программированием по жизни никак не связан. С исходниками из которых леплю более менее разобрался, какие классы за что отвечают и как их переделать под себя представляю. Спаял адаптер на ft232 для связи приложения с автомобилем, с терминалом на андроиде и виндовс работает, передает и принимает так, как нужно. Сделал графический интерфейс, принялся за наполнение и тут затык, катастрофически не хватает знаний по программированию. Застрял и не могу сдвинуться с мертвой точки, прочитал несколько книг по java и андроид, но не хватает базовых знаний. Прошу помощи в написании этого класса, чтобы смочь продолжить дальше. Если есть у кого свободное время, с удовольствием бы разобрал данный класс по полочкам, в качестве обучения и понимания, и сам бы его переделал, т.к. с онлайн учебниками и книгами самому не получается. Благодарность не заржавеет.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39315408
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока что есть просьба переписать некий класс, который никому не нужен и его не на чем тестировать.

Проще наверное будет обращаться с конкретным вопросом. Например, "не пишет в порт".

Ну и от себя добавлю, что UsbSerialLibrary проще в понимании, чем SerialPort. И ftdi там поддерживается.
И по примерам можно многое понять https://github.com/mik3y/usb-serial-for-android/tree/master/usbSerialExamples/src/main/java/src/com/hoho/android/usbserial/examples
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39315722
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, блин нашел баг в обработке данных: данные в буфер принимаются, битность и четность там всё нормуль....осталось функцию callback сделать, чтобы прерывание срабатывало! genymotion помогло, virual com пробросил в vbox и все понятно!
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39316564
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, еще момент уточнить. скачал библиотеку доработанную вначале serialport.jar. при компиляции не может найти классы SerialPort. подключал ее в buildpath через variable, external jar. все-равно не видит. В чем здесь беда?
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39316581
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennady345,

подозреваю, что беда в эклипсе.
Я про него забыл, как страшный сон. :)
И давно удалил.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39316661
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, именно так. сейчас просто android studio какой-то "контрофактный" пошёл, то ли компилятор не так собрали, в общем перегрузили его.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39316677
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennady345сейчас просто android studio какой-то "контрофактный" пошёл
У меня работает как и раньше.

Если по студии есть вопросы, то задавай по ней вопросы. Только в отдельной теме.
...
Рейтинг: 0 / 0
Android Usb Serial Port
    #39320249
Gennady345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, еще тут вопрос. в общем, при первом считывании size = mInputStream.read(buffer) все проходит успешно. при повторном считывании данные перестают считываться, либо еще раз выдаются предыдущие данные. то ли они в буфере висят, непонятно. поток делал destroy, потом reset, все-равно не передаются и висят в буфере. не знаешь, что может быть?
...
Рейтинг: 0 / 0
25 сообщений из 150, страница 3 из 6
Форумы / Android [игнор отключен] [закрыт для гостей] / Android Usb Serial Port
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]