powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Serial Port
96 сообщений из 96, показаны все 4 страниц
Serial Port
    #38653588
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто может подсказать как в эклипсе под Java сконфигурировать Serial Port для Android??
Ну или как подключить библиотеки
import jssc.SerialPort;
import jssc.SerialPortEvent;
import jssc.SerialPortEventListener;
import jssc.SerialPortException


в экслипсе, который предоставляют разработчики Android прямая работа с Serial Port (на сколько я понял) не подразумевается.

В Delphi XE5 у меня получилось связаться с Serial Port, и передать данные, но он меня не устраивает из-за того что объем бинарного файла с одинаковым кодом получается в 7 раз больше (к примеру скомпилированый файл в эклипсе весит 0.8 Мб, а в делфи 5.2 мб)
...
Рейтинг: 0 / 0
Serial Port
    #38653605
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу размера apk: в нем нет очень жирного куска в виде ява-машины. Рантайм явы можно посмотреть в sdk\platforms\android-XX\android.jar

С учетом что в анроиде большая часть дров вырезана ради размера, то проще будет на ХЕ5 написать.
...
Рейтинг: 0 / 0
Serial Port
    #38653642
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,


К сожалению не могу пользоваться Delphi XE5 так как у меня всего 35 мб свободной памяти на устройстве, и увеличть я его не могу. приложение должно получать/отправлять данные через Serial Port и (в зависимости от режима) получать/отправлять данные через WiFi или USB . Беспрерывно в фоновом(сервис) режиме. Посему пришлось обратиться к Eclipse.

У меня нет проблем с написанием кода. для отправки/приема данных.

Я не могу найти как сконфигурировать серийный порт.
Я открываю его как файл, записываю и считываю данные .... Но каким образом задать ему настройки "115000 8 n 1" на Java - понятия не имею.. и в интернете не удалось ничего вменяемого найти... :\
...
Рейтинг: 0 / 0
Serial Port
    #38653646
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если конкретнее то я работаю не с RS232 а с UART
...
Рейтинг: 0 / 0
Serial Port
    #38653663
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

Нашел что-то вменяемое , правда еще не проверял.
...
Рейтинг: 0 / 0
Serial Port
    #38653686
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, дрова там только для железок на базе чипов FDTI D2x.
...
Рейтинг: 0 / 0
Serial Port
    #38653713
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

То есть с железкой у которой электроника в основном базируется на чипах Texas Inctruments у меня ничего не получится..?
...
Рейтинг: 0 / 0
Serial Port
    #38654071
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, ставлю на то, что не получится. Но надежнее получить ответ опытным путем.
...
Рейтинг: 0 / 0
Serial Port
    #38654073
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.google.ru/search?q=android usb com port есть несколько опытов по подключению без дров.
...
Рейтинг: 0 / 0
Serial Port
    #38654209
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

дело в том тчо у меня не переходник USB->COM . У меня на прямую выведен SerialPort из UART. ... OMAP3
...
Рейтинг: 0 / 0
Serial Port
    #38654342
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Serial Port
    #38654361
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По результатам отпишись, будь добр. Самому интересно.
...
Рейтинг: 0 / 0
Serial Port
    #38654397
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

смог найти исходники android-serialport-api , но не получилось выдрать из него библиотеку ... помочь можете? ... там лежит пакет для обращения к портам (с этим без проблем) и библиотеки C++/C, которые подключаются через JNI. Ну куда их всунуть и как подключиться к этом JNI я не знаю(
...
Рейтинг: 0 / 0
Serial Port
    #38654516
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erсмог найти исходники android-serialport-api
Вообще-то это я нашел и ссылку выше привел.

Пример есть тут
https://code.google.com/p/android-serialport-api/source/browse/#svn/trunk/android-serialport-api/project/src/android_serialport_api/sample%3Fstate%3Dclosed
Как в свой проект "добавить" библиотеки смотреть тут
https://code.google.com/p/android-serialport-api/source/browse/#svn/trunk/android-serialport-api/project/libs
либс при создании проекта уже создана

Упрощу: во вложении то, что должно лежать в libs, а два класса можно и вручную добавить.
...
Рейтинг: 0 / 0
Serial Port
    #38654538
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Android serialport api сырой, в нем нельзя установить 8N1, только скорость... :(
...
Рейтинг: 0 / 0
Serial Port
    #38654559
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Serial Port
    #38654584
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВообще-то это я нашел и ссылку выше привел.


ну я на это еще 2-а дня назад наткнулся, просто исходники только сегодня накопал ))

Окей! попробую, гляну что получится и отпишусь
...
Рейтинг: 0 / 0
Serial Port
    #38654594
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanAndroid serialport api сырой, в нем нельзя установить 8N1, только скорость... :(


да.. точно.. а я как то не обратил на это внимание :\
...
Рейтинг: 0 / 0
Serial Port
    #38654647
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я близок к тому, чтобы допилить нативный код serialport. Если руки дойдут (эклипс ставить, доки читать по линуксу, jni и прикручиванию к дальвику), выложу.

Уж больно воображение разыгралось. :)
...
Рейтинг: 0 / 0
Serial Port
    #38654655
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Было бы чем - с мотивировал бы :D
...
Рейтинг: 0 / 0
Serial Port
    #38655545
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кое-что написал, но в эмуляторе постоянно ошибки чтения/записи.

Если есть настоящая железка, то можем потестировать. Нужно только описать сценарий: настройки, что писать и что должно придти в ответ и т.п.
...
Рейтинг: 0 / 0
Serial Port
    #38656183
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Можешь скинуть каталог JNI. А то у меня что-то не хочет определят половину функций.. то ли я что-то не правильно делаю..
...
Рейтинг: 0 / 0
Serial Port
    #38656195
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

и при сборке пишет

Description Resource Path Location Type
make: *** No rule to make target `D:/android/android-ndk-r8e/build/core/SerialPort.c', needed by `obj/local/armeabi/objs/serial_port/SerialPort.o'. Stop. Radian_SP C/C++ Problem




Description Resource Path Location Type
make.exe: *** No rule to make target `D:/android/android-ndk-r9d/build/core/SerialPort.c', needed by `obj/local/armeabi/objs/serial_port/SerialPort.o'. Stop. Radian_SP C/C++ Problem



Связано с тем что в файле "SerialPort.c" он не определяет функции которые наследует из jni.h("GetObjectClass","FindClass" и т.д.) но по какой причине я не знаю..

Собирал (для теста) обычную библиотеку (по изменению строки) все работало нормально...
...
Рейтинг: 0 / 0
Serial Port
    #38656201
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЕсли есть настоящая железка, то можем потестировать.

Железка есть.. и тестировать есть с чем. Только собрать не получается ^_^
...
Рейтинг: 0 / 0
Serial Port
    #38656211
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

ты бы лучше код показал, а не только текст ошибки...

Напиши сценарий, я выложу тест и проверим.
...
Рейтинг: 0 / 0
Serial Port
    #38656231
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
Скрин

SerialPort.c
Код: plaintext
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.
/*
 * Copyright 2009-2011 Cedric Priscal
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <termios.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <jni.h>

#include "SerialPort.h"

static speed_t getBaudrate(jint baudrate)
{
	switch(baudrate) {
	case 0: return B0;
	case 50: return B50;
	case 75: return B75;
	case 110: return B110;
	case 134: return B134;
	case 150: return B150;
	case 200: return B200;
	case 300: return B300;
	case 600: return B600;
	case 1200: return B1200;
	case 1800: return B1800;
	case 2400: return B2400;
	case 4800: return B4800;
	case 9600: return B9600;
	case 19200: return B19200;
	case 38400: return B38400;
	case 57600: return B57600;
	case 115200: return B115200;
	case 230400: return B230400;
	case 460800: return B460800;
	case 500000: return B500000;
	case 576000: return B576000;
	case 921600: return B921600;
	case 1000000: return B1000000;
	case 1152000: return B1152000;
	case 1500000: return B1500000;
	case 2000000: return B2000000;
	case 2500000: return B2500000;
	case 3000000: return B3000000;
	case 3500000: return B3500000;
	case 4000000: return B4000000;
	default: return -1;
	}
}

/*
 * Class:     android_serialport_SerialPort
 * Method:    open
 * Signature: (Ljava/lang/String;II)Ljava/io/FileDescriptor;
 */
JNIEXPORT jobject JNICALL Java_ua_radian_radian_sp_SerialPort_open
  (JNIEnv *env, jclass thiz, jstring path, jint baudrate, jint flags)
{
	int fd;
	speed_t speed;
	jobject mFileDescriptor;

	/* Check arguments */
	{
		speed = getBaudrate(baudrate);
		if (speed == -1) {
			/* TODO: throw an exception */
			LOGE("Invalid baudrate");
			return NULL;
		}
	}

	/* Opening device */
	{
		jboolean iscopy;
		const char *path_utf = *env->GetStringUTFChars(env, path, &iscopy);
		LOGD("Opening serial port %s with flags 0x%x", path_utf, O_RDWR | flags);
		fd = open(path_utf, O_RDWR | flags);
		LOGD("open() fd = %d", fd);
		(*env)->ReleaseStringUTFChars(env, path, path_utf);
		if (fd == -1)
		{
			/* Throw an exception */
			LOGE("Cannot open port");
			/* TODO: throw an exception */
			return NULL;
		}
	}

	/* Configure device */
	{
		struct termios cfg;
		LOGD("Configuring serial port");
		if (tcgetattr(fd, &cfg) != 0)
		{
			LOGE("tcgetattr() failed");
			close(fd);
			/* TODO: throw an exception */
			return NULL;
		}

	   //	cfmakeraw(&cfg);
		/* Set Baud Rate */
		cfsetispeed(&cfg, speed);
		cfsetospeed(&cfg, speed);

		/* Setting other Port Stuff */
		cfg.c_cflag     &=  ~PARENB;        // Make 8n1
		cfg.c_cflag     &=  ~CSTOPB;
		cfg.c_cflag     &=  ~CSIZE;
		cfg.c_cflag     |=  CS8;

		cfg.c_cflag     &=  ~CRTSCTS;       // no flow control
		cfg.c_cc[VMIN]      =   1;                  // read doesn't block
		cfg.c_cc[VTIME]     =   5;                  // 0.5 seconds read timeout
		cfg.c_cflag     |=  CREAD | CLOCAL;     // turn on READ & ignore ctrl lines

        cfmakeraw(&cfg);


		if (tcsetattr(fd, TCSANOW, &cfg) != 0)
		{
			LOGE("tcsetattr() failed");
			close(fd);
			/* TODO: throw an exception */
			return NULL;
		}
	}

	/* Create a corresponding file descriptor */
	{
		jclass cFileDescriptor = (*env)->FindClass(env, "java/io/FileDescriptor");
		jmethodID iFileDescriptor = (*env)->GetMethodID(env, cFileDescriptor, "<init>", "()V");
		jfieldID descriptorID = (*env)->GetFieldID(env, cFileDescriptor, "descriptor", "I");
		mFileDescriptor = (*env)->NewObject(env, cFileDescriptor, iFileDescriptor);
		(*env)->SetIntField(env, mFileDescriptor, descriptorID, (jint)fd);
	}

	return mFileDescriptor;
}

/*
 * Class:     cedric_serial_SerialPort
 * Method:    close
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_ua_radian_radian_sp_SerialPort_close
  (JNIEnv *env, jobject thiz)
{
	jclass SerialPortClass = (*env)->GetObjectClass(env, thiz);
	jclass FileDescriptorClass = (*env)->FindClass(env, "java/io/FileDescriptor");

	jfieldID mFdID = (*env)->GetFieldID(env, SerialPortClass, "mFd", "Ljava/io/FileDescriptor;");
	jfieldID descriptorID = (*env)->GetFieldID(env, FileDescriptorClass, "descriptor", "I");

	jobject mFd = (*env)->GetObjectField(env, thiz, mFdID);
	jint descriptor = (*env)->GetIntField(env, mFd, descriptorID);

	LOGD("close(fd = %d)", descriptor);
	close(descriptor);
}


SerialPort.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class android_serialport_api_SerialPort */

#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     android_serialport_api_SerialPort
 * Method:    open
 * Signature: (Ljava/lang/String;II)Ljava/io/FileDescriptor;
 */
JNIEXPORT jobject JNICALL Java_ua_radian_radian_sp_SerialPort_open
  (JNIEnv *, jclass, jstring, jint, jint);


JNIEXPORT void JNICALL Java_ua_radian_radian_sp_SerialPort_close
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

...
Рейтинг: 0 / 0
Serial Port
    #38656250
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

я уже с телефона, завтра посмотрю и выложу свою библиотеку, попробуешь.
Завтра же у супруги заберу планшет для тестирования )
...
Рейтинг: 0 / 0
Serial Port
    #38656661
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Планшет отвоевать не удалось...

Изменения в сравнении с оригиналом:
Код: java
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.
/*
 * Copyright 2009 Cedric Priscal
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */

package ru.wadman.serialport;

import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.util.Log;

public class SerialPort {

		public final static int SERIALPORT_NOPARITY		= 0;
		public final static int SERIALPORT_ODDPARITY	= 1;
		public final static int SERIALPORT_EVENPARITY	= 2;
		public final static int SERIALPORT_SIZE5		= 5;
		public final static int SERIALPORT_SIZE6		= 6;
		public final static int SERIALPORT_SIZE7		= 7;
		public final static int SERIALPORT_SIZE8		= 8;
		public final static int SERIALPORT_1STOPBIT		= 1;
		public final static int SERIALPORT_2STOPBIT		= 2;

		private static final String TAG = "SerialPort";
        
        /*
         * Do not remove or rename the field mFd: it is used by native method close();
         */
        private FileDescriptor mFd;
        private FileInputStream mFileInputStream;
        private FileOutputStream mFileOutputStream;

        public SerialPort(File device, int flags) throws SecurityException, IOException {

                /* Check access permission */
                if (!device.canRead() || !device.canWrite()) {
                        try {
                                /* Missing read/write permission, trying to chmod the file */
                                Process su;
                                su = Runtime.getRuntime().exec("su");
                                String cmd = "chmod 666 " + device.getAbsolutePath() + "\n"
                                                + "exit\n";
                                su.getOutputStream().write(cmd.getBytes());
                                if ((su.waitFor() != 0) || !device.canRead()
                                                || !device.canWrite()) {
                                        throw new SecurityException();
                                }
                        } catch (Exception e) {
                                e.printStackTrace();
                                throw new SecurityException();
                        }
                }

                mFd = open(device.getAbsolutePath(), flags);
                if (mFd == null) {
                        Log.e(TAG, "native open returns null");
                        throw new IOException();
                }
                mFileInputStream = new FileInputStream(mFd);
                mFileOutputStream = new FileOutputStream(mFd);
        }

        // Getters and setters
        public InputStream getInputStream() {
                return mFileInputStream;
        }

        public OutputStream getOutputStream() {
                return mFileOutputStream;
        }

        // JNI
        private native static FileDescriptor open(String path, int flags);
        public native void config(int baudrate, int bsize, int parity, int stopb);
        public native void close();
        static {
                System.loadLibrary("serial_port");
        }
}

...
Рейтинг: 0 / 0
Serial Port
    #38656662
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er Скрин
У тебя явовский проект, а код сишный. Отсюда и ошибки.
...
Рейтинг: 0 / 0
Serial Port
    #38656722
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

мм.. это понял.. а каким тогда образом мне дописать и собрать свою библиотеку? (в другой среде?)

А разве переключение режима (верхний правый угол в Eclipse) не "исправляет" восприятие Сишного кода??
...
Рейтинг: 0 / 0
Serial Port
    #38656729
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Восприятие" может и меняет, но не компиляцию-же. Эклипс не знает об НДК.

Погугли на тему сборки в эклипсе.
...
Рейтинг: 0 / 0
Serial Port
    #38656734
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Хорошо, сейчас все гляну... через несколько часов постараюсь скинуть результаты
...
Рейтинг: 0 / 0
Serial Port
    #38656861
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman"Восприятие" может и меняет, но не компиляцию-же. Эклипс не знает об НДК.

Погугли на тему сборки в эклипсе.

Странно... добавил НДК, теперь библиотеки компилируются но ошибки все равно выдает...
...
Рейтинг: 0 / 0
Serial Port
    #38656905
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erwadman"Восприятие" может и меняет, но не компиляцию-же. Эклипс не знает об НДК.

Погугли на тему сборки в эклипсе.

Странно... добавил НДК, теперь библиотеки компилируются но ошибки все равно выдает...
Это мелочи... Главное - работает?
...
Рейтинг: 0 / 0
Serial Port
    #38657118
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Всё сработало. Правда передалось непонятно что :D ... ну это беда моей конфигурации портов. То ли на Win32 то ли на Android.

Я использовал все таки свою сборку из этих библиотек, пока что просто дописав конфигурацию при открытии порта
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
                cfmakeraw(&cfg);
		cfsetispeed(&cfg, speed);
		cfsetospeed(&cfg, speed);


		cfg.c_cflag     &=  ~PARENB;        // Make 8n1
		cfg.c_cflag     &=  ~CSTOPB;
		cfg.c_cflag     &=  ~CSIZE;
		cfg.c_cflag     |=  CS8;

		cfg.c_cflag     &=  ~CRTSCTS;       // no flow control
		cfg.c_cc[VMIN]      =   1;                  // read doesn't block
		cfg.c_cc[VTIME]     =   5;                  // 0.5 seconds read timeout
		cfg.c_cflag     |=  CREAD | CLOCAL;     // turn on READ & ignore ctrl lines



		if (tcsetattr(fd, TCSANOW, &cfg))


Ну и сам вызов
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	
              OnClickListener oclvListDev = new OnClickListener() {
	       @Override
	       public void onClick(View v) {
	         // TODO Auto-generated method stub
	    	   						//путь к порту задаю через EditText
	    	   File fd = new File(etMyDev.getText().toString());
	    	   
	    	   try
	    	   {							//случайный набор байт
	    		   byte dataToWrite[] = {1,5,7,34,5,8,7,8,3,2};	
	    		   mySerialPort = new SerialPort(fd,115200,0);
	    		   mySerialPort.getOutputStream().write(dataToWrite);
	    	   }
	    	   catch(IOException ioe)
	    	   {
	    		  ioe.printStackTrace();  
	    	   }
	    	   mySerialPort.close();
	
	       }
	     };


Чтение из файла не пробовал пока что.. но думаю там ничего не изменится... Спасибо за помощь:-)
...
Рейтинг: 0 / 0
Serial Port
    #38657159
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЭто мелочи... Главное - работает?

Кстати ошибку исправил заменив файл SerialPort.c(формат Си) -> SerialPort.cpp(формат С++) и
внес небольшие корректировки(изменил обращение ко всем указателям JNI) в код относительно "нового" языка:

было
Код: plaintext
1.
(*env)->GetStringUTFChars(env, path, &iscopy);


стало
Код: plaintext
1.
(env)->GetStringUTFChars(path, &iscopy);



П.С. такое "раскрытое" объяснение для читателей :-)
...
Рейтинг: 0 / 0
Serial Port
    #38657266
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erВсё сработало. Правда передалось непонятно что :D
С андроида что именно отправлялось? Что-то русское?
...
Рейтинг: 0 / 0
Serial Port
    #38657288
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

нет.. цифры... ... там ошибка была на приеме данных.. (стоял прием в виде Char[0..n] вместо byte[0..n]).. главное что данные передаются.. а расшифровать уже это дело такое...
...
Рейтинг: 0 / 0
Serial Port
    #38657295
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, рут используется или без него нормально работает? Что за устройство (с андроидом)?
...
Рейтинг: 0 / 0
Serial Port
    #38657324
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

У меня "война" с рутом(не получается переключить режим запуска приложений на "из под рута"). На сколько я понял для переключения "прав доступа на порт" нужно что бы приложение запускалось под рутом. ... я вручную (через терминал) открыл доступ на порт для чтения записи (chmod 666 ttyXX) и спокойно работал. Без рута меня просто выбивало из приложения(из-за попытки переключить права доступа к порту). А если без "изменения прав"(за комментировать) то порт не открывается.

Android 4.2.2 на устройстве ( мозги которые в в нем стоят)
...
Рейтинг: 0 / 0
Serial Port
    #38657392
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

как вызывать su - смотри у меня в исходниках выше. Нужно путь убрать.
...
Рейтинг: 0 / 0
Serial Port
    #38658323
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Не помогло.. из приложения выкидывает, а консоль выдает:
"binder: 479:479 transaction failed 29189, size 92-0"
...
Рейтинг: 0 / 0
Serial Port
    #38658384
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, su-то установлен?
...
Рейтинг: 0 / 0
Serial Port
    #38658401
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Да, только лежит он по адресу "/system/xbin/su"

мне хотя бы найти как изменить права доступа к файлу через консоль, что бы после перезагрузки системы изменения не "сбрасывались" было бы достаточно. ... в моем случае проблема заключается в том что приложение запущенно без прав root . (ИМХО)
...
Рейтинг: 0 / 0
Serial Port
    #38658452
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erДа, только лежит он по адресу "/system/xbin/su"
И у меня в планшете и эмуляторе лежит там-же. Я убрал путь из вызова
wadman
Код: java
1.
2.
Process su;
su = Runtime.getRuntime().exec("su");


И запрос на рут доступ всплывает. Так что где-то у тебя проблема, пробежись дебагом и посмотри точный текст ошибок со стеком.

Хочу еще отметить, что usb-serial-for-android тоже отлично работает с устройствами. При этом не требует рут прав, но требуется легкий допил по своим железкам, которые в нем не прописаны. Сейчас там есть это:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 0x0403 / 0x6001: FTDI FT232R UART -->
    <usb-device vendor-id="1027" product-id="24577" />

    <!-- 0x0403 / 0x6015: FTDI FT231X -->
    <usb-device vendor-id="1027" product-id="24597" />

    <!-- 0x2341 / Arduino -->
    <usb-device vendor-id="9025" />

    <!-- 0x16C0 / 0x0483: Teensyduino  -->
    <usb-device vendor-id="5824" product-id="1155" />

    <!-- 0x10C4 / 0xEA60: CP210x UART Bridge -->
    <usb-device vendor-id="4292" product-id="60000" />

    <!-- 0x067B / 0x2303: Prolific PL2303 -->
    <usb-device vendor-id="1659" product-id="8963" />
</resources>


CP работает, проверил. Пролайфик не захотел, там микросхема 5в, планшет затребовал для нее доп.питание.
...
Рейтинг: 0 / 0
Serial Port
    #38658589
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman
И запрос на рут доступ всплывает.

Я работаю на андроиде 4.2.2 может это новая "плющка" этой ОС?? на подобии той, что в 4.2.2 нельзя устанавливать приложения на СДкарту.. только в внутреннюю память...

У меня "спец приложения" по открыванию рут доступа для всей системы тоже не захотели работать на устройстве.
...
Рейтинг: 0 / 0
Serial Port
    #38658846
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erЯ работаю на андроиде 4.2.2 может это новая "плющка" этой ОС??
Если и "плюшка", то от производителя железки, самим андроидом поддерживается вплоть до 4.4.х и, думаю, дальше будет если не так-же, то лучше.

В usb-serial-for-android имеется ошибка при работе с cp2102 в методе setParameters. Ниже исправление:
Код: java
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.
public void setParameters(int baudRate, int dataBits, int stopBits, int parity)
        throws IOException {
    setBaudRate(baudRate);

    int config = 0;
    switch (dataBits) {
        case DATABITS_5:
            config |= 0x0500;
            break;
        case DATABITS_6:
            config |= 0x0600;
            break;
        case DATABITS_7:
            config |= 0x0700;
            break;
        case DATABITS_8:
            config |= 0x0800;
            break;
        default:
            config |= 0x0800;
            break;
    }

    switch (parity) {
        case PARITY_ODD:
            config |= 0x0010;
            break;
        case PARITY_EVEN:
            config |= 0x0020;
            break;
    }

    switch (stopBits) {
        case STOPBITS_1:
            config |= 0;
            break;
        case STOPBITS_2:
            config |= 2;
            break;
    }
    setConfigSingle(SILABSER_SET_LINE_CTL_REQUEST_CODE, config);

}

...
Рейтинг: 0 / 0
Serial Port
    #38658851
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

у меня нет возможность подключить ADB к устройству ... там что-то муторно описано производителем... мне во всем приходится самому разбираться.. UserManual "5летней" давности ... половина того что в нем написано не работает...

Можешь сказать, когда выполняется код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
su = Runtime.getRuntime().exec("su");
String cmd = "chmod 666 " + device.getAbsolutePath() + "\n"
+ "exit\n";
su.getOutputStream().write(cmd.getBytes());
if ((su.waitFor() != 0) || !device.canRead()
|| !device.canWrite()) {
throw new SecurityException();
}*/



у тебя в консоли при вводе ( ls -l ) права визуально меняются?
...
Рейтинг: 0 / 0
Serial Port
    #38658880
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие ты ставил доступы в AndroidManifest ??
...
Рейтинг: 0 / 0
Serial Port
    #38658893
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erу тебя в консоли при вводе ( ls -l ) права визуально меняются?
На планшете не проверить, т.к. дата кабель сломан. Тестирую устанавливая через инет. Могу только на эмуляторе посмотреть.

BoJI4erкакие ты ставил доступы в AndroidManifest ??
Там ничего необычного, все как в примере. Сам теперь подсел на usb serial for android.
Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="ru.wadman.serialporttest.app"
          android:versionCode="3"
          android:versionName="1.2" >

    <application
        android:label="@string/app_name"
        android:name="Application" >
        <activity
            android:label="@string/app_name"
            android:name="MainMenu" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="SerialPortPreferences" >
        </activity>
        <activity android:name="ConsoleActivity" >
        </activity>
        <activity android:name="LoopbackActivity" >
        </activity>
        <activity android:name="Sending01010101Activity"></activity>
    </application>

    <uses-sdk android:minSdkVersion="10" />

</manifest>

...
Рейтинг: 0 / 0
Serial Port
    #38659008
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

я пошел по пути "банального"
Код: java
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.
public class MainActivity extends Activity {

	Button mybtn;
	TextView mytv;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

			
		mybtn = (Button) findViewById(R.id.button1);
		mybtn.setOnClickListener(ocBtn);
		
		
		mytv = (TextView) findViewById(R.id.textView1);
		
	}


	OnClickListener ocBtn = new OnClickListener() {
	       @Override
	       public void onClick(View v) {
	         // TODO Auto-generated method stub
	    	   
	    	   Runtime r = Runtime.getRuntime();
	    	   Process p = null;               //ttyO1 - идентификатор моего SerialPort-а
	    	   String cmd = "/system/xbin/su chmod 666 /dev/ttyO1";
	    	   try
	    	   {
	    		   p = r.exec(cmd);
	    		   mytv.setText(String.valueOf(p.waitFor()));
	    	   }
	    	   catch (Exception e) {
	    		 e.printStackTrace();
	    		 throw new SecurityException();
	    	   }
	       }
	     };

}


p.waitfor() возвращает мне "1". ... По описаниям это коды ошибок.. описание самих ошибок я не нашел. ... "0" мне вернулся только при cmd="ls -l".

Попробуй у себя набросать какое нибудь подобно сервисное приложение, которое у тебя изменит права файла (выполнит команжду chmod 666 ) файла (вернет "0") и если получится - скинь мне бинарник (*.apk). Я у себя гляну.
...
Рейтинг: 0 / 0
Serial Port
    #38659094
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, еще бы знать у какого файла поменять. :) Создай где-нибудь файл и скинь его путь.

У меня мысль, что у тебя su недоустановлен в системе. Особенно, если он шел из производства. Попробуй поставить свой, полноценный. Еще пишут, что bash может быть не установлен, или с правами непорядок.
...
Рейтинг: 0 / 0
Serial Port
    #38659115
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если я тут выкладывал SerialPortTest, то он удачно выполняет смену атрибутов.
...
Рейтинг: 0 / 0
Serial Port
    #38659561
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй.
...
Рейтинг: 0 / 0
Serial Port
    #38659600
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

попробовал.. пишет "у вас нет прав на чтение/запись в порт".

у меня есть еще одна задумка. написать сервисную программку на линукс, для изменения прав файлу. скомпилировать её под рутом, дать её права и вызывать её при запуске системы. На дебиане у меня такая фишка работала... авось тут тоже сработает. Все таки вызвать из приложения команду "ls -la>test.txt" у меня получилось. и результат я получил в файл... попробую - отпишу.
...
Рейтинг: 0 / 0
Serial Port
    #38659634
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erпопробовал.. пишет "у вас нет прав на чтение/запись в порт".
Скорее всего рут неполноценный.
...
Рейтинг: 0 / 0
Serial Port
    #38659687
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, там уарт имеет разные выходы, может стоит попробовать через usb-com его подцепить на известных чипах (ftdi, cp, prolific) и использовать usb-serial-for-android?
Никаких рутов не нужно и все работает отлично.
...
Рейтинг: 0 / 0
Serial Port
    #38659799
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanBoJI4erпопробовал.. пишет "у вас нет прав на чтение/запись в порт".
Скорее всего рут неполноценный.

Похоже на то..

wadmanКстати, там уарт имеет разные выходы, может стоит попробовать через usb-com его подцепить на известных чипах (ftdi, cp, prolific) и использовать usb-serial-for-android?
Никаких рутов не нужно и все работает отлично.

Надо попробовать... иначе это не вариант. чуть позже освобожусь - займусь этим

П.С. Моя задумка с программкой из под линукса не прокатила :-(
...
Рейтинг: 0 / 0
Serial Port
    #38659847
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 0x0403 / 0x6001: FTDI FT232R UART -->
    <usb-device vendor-id="1027" product-id="24577" />

    <!-- 0x0403 / 0x6015: FTDI FT231X -->
    <usb-device vendor-id="1027" product-id="24597" />

    <!-- 0x2341 / Arduino -->
    <usb-device vendor-id="9025" />

    <!-- 0x16C0 / 0x0483: Teensyduino  -->
    <usb-device vendor-id="5824" product-id="1155" />

    <!-- 0x10C4 / 0xEA60: CP210x UART Bridge -->
    <usb-device vendor-id="4292" product-id="60000" />

    <!-- 0x067B / 0x2303: Prolific PL2303 -->
    <usb-device vendor-id="1659" product-id="8963" />
</resources>




Не подскажешь где можно найти vendor-id и product-id к моему устройству?? :-) только в документациях и у производителя? .., или я могу средствами Win32 добраться до нужных данных??
...
Рейтинг: 0 / 0
Serial Port
    #38659852
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erили я могу средствами Win32 добраться до нужных данных??
Подцепи к компу, винда покажет его свойства. Убунту (линукс) тоже покажет, но команду не помню.
...
Рейтинг: 0 / 0
Serial Port
    #38659867
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Код: sql
1.
2.
USB\VID_18D1&PID_D109&REV_0216&MI_01
USB\VID_18D1&PID_D109&MI_01


я так понимаю:
Код: xml
1.
2.
<!-- 0x18D1 / 0xD109: UART Bridge -->
<usb-device vendor-id="6353" product-id="53513" />


Правильно?
...
Рейтинг: 0 / 0
Serial Port
    #38659905
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erПравильно?
Если хочешь напрямую прописать, без переходников в виде usb-com, то да, верно. Но ведь и придется изучать портянку вроде этой по silabs , с помощью которой я и поправил работу с cp2102.
...
Рейтинг: 0 / 0
Serial Port
    #38660173
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

что-то я не могу разобраться как с библиотекой работать. подключить я её подключил...
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        
        <activity
            android:name="ua.radian.usbserial.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data
			      android:name="android.hardware.usb.action.MAIN" 
			      android:resource="@xml/device_filter" />
        </activity>

Код приложения:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
manager = (UsbManager) getSystemService(Context.USB_SERVICE);
driver = UsbSerialProber.acquire(manager);

if (driver != null)
{
   myarrayAdapter.add("Good!");  
   mylist.setAdapter(myarrayAdapter);
}

но в результате в списке ничего :\
...
Рейтинг: 0 / 0
Serial Port
    #38660179
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй, что покажет?
wadman.ru/files/serialporttest.apk
...
Рейтинг: 0 / 0
Serial Port
    #38660196
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

при подключении флешки через USB разъем он её увидел...

у меня в системе есть 5 UART портов. 1 из них (какой именно я знаю) выведен в виде RS232. Мне нужно получить к нему доступ. По идее он его должен определить и без подключенного устройства. так?
...
Рейтинг: 0 / 0
Serial Port
    #38660221
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erПо идее он его должен определить и без подключенного устройства. так?
Я и забыл, что у тебя уарт... Все таки serial port придется допиливать, либо переходник usb-com искать.

Есть возможность свой su поставить, для serial port?
...
Рейтинг: 0 / 0
Serial Port
    #38660242
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЕсть возможность свой su поставить, для serial port? ... эм... если бы я знал как это делается :-) ... я с UNIX системами работаю не давно.. :\
...
Рейтинг: 0 / 0
Serial Port
    #38660248
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erя с UNIX системами работаю не давно.. :\
Как раз в настольных системах с этим проблем нет. Для начала стоит убедиться, что имеется возможность вернуть систему в первоначальный вид на случай сбоя при прикручивании su или для обращения по гарантии. А потом нырять в гугл https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=как установить su android.
...
Рейтинг: 0 / 0
Serial Port
    #38660277
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanДля начала стоит убедиться, что имеется возможность вернуть систему в первоначальный вид на случай сбоя при прикручивании su или для обращения по гарантии.
С этим нет проблем. я в любой момент могу перепрошить систему (у меня это занимает 5 минут и на гарантию это не влияет).

wadmanА потом нырять в гугл https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=как установить su android.

да... все было бы ничего если бы на этом устройстве был интернет )) ... сеть есть, а самого приложения Internet.apk нет)))
...
Рейтинг: 0 / 0
Serial Port
    #38660288
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, не с устройства нырять, а с большого брата и искать способы установить рут.
...
Рейтинг: 0 / 0
Serial Port
    #38660298
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
через ADB? ... сейчас попробую настроить ADB... если получится...
П.С. А то первая попытка разобраться с настройкой ADB была не удачной :-(
...
Рейтинг: 0 / 0
Serial Port
    #38660303
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erчерез ADB?
Да. Это вообще полезная штука для разработчика, потому как эмуляторы далеко не всегда помогают.
...
Рейтинг: 0 / 0
Serial Port
    #38660357
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

это понятно, но у меня никак не получается его установить.. :\
С этим я пока помучаюсь.. мне производитель устройства написал:

"У вашего приложения нет прав на изменение прав доступа.
Установите права доступа до запуска приложения (скриптом)." ... чеснто говоря как это сделать в андроиде я понятия не имею... откуда запускается приложение я не знаю.. бинарник я не смог найти.
...
Рейтинг: 0 / 0
Serial Port
    #38660377
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er"У вашего приложения нет прав на изменение прав доступа.
Установите права доступа до запуска приложения (скриптом)." ... чеснто говоря как это сделать в андроиде я понятия не имею... откуда запускается приложение я не знаю.. бинарник я не смог найти.
Забавные ребята... Бинарник su не находится?
...
Рейтинг: 0 / 0
Serial Port
    #38660379
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЗабавные ребята... Бинарник su не находится? ... не.. бинарник от su я нашел :-) ... я не смог найти бинарный файл приложения, что бы ему задать параметры рута


Мне удалось поставить ADB ... сейчас попробую через ADB изменить права рута...
...
Рейтинг: 0 / 0
Serial Port
    #38660407
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er... не.. бинарник от su я нашел :-)
Вообще в андроиде обращение к su запускает supersu.apk который выводит запрос пользователю. Видимо su не находит apk и потому выдает ошибку.

Superuser имеется в списке установленных приложений? Если нет, то таки да, придется менять загрузочный скрипт, но что туда вписать - придется теребить поддержку.
...
Рейтинг: 0 / 0
Serial Port
    #38660482
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

поставил это , попробовал запустить SerialPort - приложение повисло (неверное на операции su.waitFor() ) после чего предложило подождать или закрыть. ... после ожидания (ничего ... по цыклу предлагает закрыть) ... когда закрыл в консоли стандартная надпись - "binder: 478:478 transaction failed 29189, siz
e 92-0". ... реально может как нибудь можно изменять права (или владельца) при инициализации портов в ядре ОС ??
...
Рейтинг: 0 / 0
Serial Port
    #38660497
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanSuperuser имеется в списке установленных приложений? Если нет, то таки да, придется менять загрузочный скрипт, но что туда вписать - придется теребить поддержку.

"Суперпользователь" появился в списке установленных приложений, но каким образом через него дать права приложению я не пойму..? ... когда запускаю новый SU в списке нет приложений .. :\
...
Рейтинг: 0 / 0
Serial Port
    #38660540
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er,

если суперюзер стартует (апк), посмотри его настройки - всплывает по запросу?
...
Рейтинг: 0 / 0
Serial Port
    #38660773
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

да, в настройках стоит галочка "диалог по запросу" ... о он не выскакивает при работе ..
...
Рейтинг: 0 / 0
Serial Port
    #38660969
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erbinder: 478:478 transaction failed 29189
Это означает, что обращение к сервису (интенту) провалено. Как раз su и обращается к apk с запросом...
Попробуй все таки установить другой root, их вроде два наиболее распространенных.
...
Рейтинг: 0 / 0
Serial Port
    #38661009
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Можешь скинуть варианты? а то я только на этот попадаю
...
Рейтинг: 0 / 0
Serial Port
    #38661048
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4erМожешь скинуть варианты? а то я только на этот попадаю
Чем он не устраивает? На xda весьма авторитетные товарищи сидят в основном.
...
Рейтинг: 0 / 0
Serial Port
    #38661053
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

он "не сработал".. я его поставил, но приложения все равно не запрашивают пава доступа... при запуске приложения superuser в списке ничего не отображается...
...
Рейтинг: 0 / 0
Serial Port
    #38661076
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoJI4er, посмотри http://4pda.ru/forum/index.php?forums%5B%5D=317&act=Search&source=all&query=root]http://4pda.ru/forum/index.php?forums[]=317&act=Search&source=all&query=root
Там не только руты, конечно, ищутся, но и приложения, которые требуют рут, но тем не менее...
...
Рейтинг: 0 / 0
Serial Port
    #38661148
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

УРА!!!!!!!!!!!!!!!!!!! Удалось!!! ))))))))))
Вручную скачал SU для ARM систем (от SuperSU.apk) и насильно заменил его (cp sdcard1/su /system/xbin). Перезагрузил систему, после чего
Код: java
1.
2.
Process process = Runtime.getRuntime().exec("su");
String cmd = "chmod 666 " + device.getAbsolutePath() + "\n exit\n";

заработало :-)

П.С. файл приложил. при копировании переименовать в "su"
...
Рейтинг: 0 / 0
Serial Port
    #38661155
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и отлично!
...
Рейтинг: 0 / 0
Serial Port
    #38661178
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

спасибо за помощь :-)
...
Рейтинг: 0 / 0
Serial Port
    #38727390
Sindibober
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BoJI4er,

не могли бы поделиться подробнее, как удалось запустить в Delphi, пожалуйста?
...
Рейтинг: 0 / 0
Serial Port
    #38727780
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sindiboberне могли бы поделиться подробнее, как удалось запустить в Delphi, пожалуйста?
А что именно у него удалось запустить на дельфи? Вроде как на яве все написано, что работает.
...
Рейтинг: 0 / 0
Serial Port
    #38730513
Sindibober
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

BoJI4erВ Delphi XE5 у меня получилось связаться с Serial Port, и передать данные, но он меня не устраивает из-за того что объем бинарного файла с одинаковым кодом получается в 7 раз больше (к примеру скомпилированый файл в эклипсе весит 0.8 Мб, а в делфи 5.2 мб)
А мне вес apk непринципиален, просто нужно запустить.
...
Рейтинг: 0 / 0
Serial Port
    #38733381
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SindiboberBoJI4er,

не могли бы поделиться подробнее, как удалось запустить в Delphi, пожалуйста?

Serial Port под Android (как и под Linux) открывается как файл. Используйте путь к фалу(у меня - "/dev/ttO3"). Далее работаешь с ним как с фалом (чтение/запись)

П.С. Я не говорил что сконфигурировал его после открытия. я в XE5 только открыл и с стандартными настройками(9600 8N1 вроде бы) передал данные.
...
Рейтинг: 0 / 0
Serial Port
    #38739796
Sindibober
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BoJI4er,

Ясно, т.е. стандартный подход через потоки?
...
Рейтинг: 0 / 0
Serial Port
    #38740031
Sindibober
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BoJI4er, и еще вопрос, как задать или определить путь к файлу (dev/...)?
...
Рейтинг: 0 / 0
Serial Port
    #38741911
BoJI4er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SindiboberBoJI4er,

Ясно, т.е. стандартный подход через потоки?

да


SindiboberBoJI4er, и еще вопрос, как задать или определить путь к файлу (dev/...)?

возьми документацию на свое устройство и почитай как оно определяет UART (RS232/SerialPort). Потом зайди в терминал, пробей dmesg | grep tty и посмотри список всех устройств. по умолчанию "tty..0" это консоль

у меня на устройстве они определяются как ttyOx. На Ubuntu (на стационарном ПК) как ttySx (где x - номер устройства)...
...
Рейтинг: 0 / 0
Serial Port
    #39006153
tromani
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BoJI4er
не знаю как тут личное писать, пишу тут
вы в начале писали что получилось связать в андроид устройстве делфи с ком-портом
не подскажите как получилось у вас?

нашел компонент AComPort на просторах интернета, но он платный может у вас другим образом вышло...
...
Рейтинг: 0 / 0
96 сообщений из 96, показаны все 4 страниц
Форумы / Android [игнор отключен] [закрыт для гостей] / Serial Port
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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