Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Приложение управление RGB лентой по wifi - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Bitmap трансформация http://www.cyberforum.ru/android-dev/thread950453.html
Здрасте) Как можно трансформировать bitmap? Т.е. у меня есть картинка, которую я загружаю, и мне её надо сжать один край, из прямоугольной формы сделать трапецию. Спасибо
Программирование Android Программная выборка из БД У меня не получается сделать выборку.. пишу такой код cursor = db.query(TABLE_NAME, null,rowName+"= ?",String {inputName},null,null,null); String... http://www.cyberforum.ru/android-dev/thread950348.html
Класс: Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. Программирование Android
Есть 3 класса: MainActivity, WorkDB и WorkFiles. Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. Файл MainActivity.java: public class MainActivity extends Activity { ...
Программирование Android Точка доступа
Ребята, как сделать автозапуск точки доступа на андроид 4.0? Данное устройство, является мини компьютером для телевизора, которое выступает так же сервером для удаленного управления.
Программирование Android Разрешения для приложения http://www.cyberforum.ru/android-dev/thread950223.html
Ставлю в своем приложении следующие разрешения: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> При...
Программирование Android Не переходит на нужный леяут графика у меня рисуется на полноэкранном имагевью, нажимаю меню изменения качества(вызывается другой леяут), затем когда нужно вернуться назад - тупо черный экран, хотя я прописал и вызывается: ... подробнее

Показать сообщение отдельно
Gegurez
2 / 2 / 0
Регистрация: 08.09.2013
Сообщений: 10

Приложение управление RGB лентой по wifi - Программирование Android

09.09.2013, 00:13. Просмотров 1742. Ответов 3
Метки (Все метки)

Всем привет.
Купил недавно один девайс - управление диодной лентой RGB по wifi (китай) c android/iOS (если надо могу ссылку скинуть). Исходников нигде нет...
Очень хочется научиться управлять этой штуковиной с компа (явой сладею слабо, больше как то c)
Пробовал получить исходники приложения через apktool, дело дошло до получения кода в .smali. dex2jar и дальнейшее открытие в jd-gui результата не дало (не открывается).
Изучение .smali дало результат что подключется по на ip 192.168.10.1 порт 5577 (проверено nmap и найдено в smali что именно этот порт \smali\com\Zengge\Sockets). Используются сокеты для соединения, формируется некое сообщение (массив byte) и записывается в поток метод send.
По smali: \smali\com\Zengge\Sockets
Код
.method public sendRgbColor(III)V
    .locals 3
    .parameter "r"
    .parameter "g"
    .parameter "b"

    .prologue
    const/4 v2, 0x0

    .line 203
    iput p1, p0, Lcom/Zengge/Sockets;->r:I

    .line 204
    iput p2, p0, Lcom/Zengge/Sockets;->g:I

    .line 205
    iput p3, p0, Lcom/Zengge/Sockets;->b:I

    .line 206
    iput v2, p0, Lcom/Zengge/Sockets;->modes:I

    .line 207
    const/4 v1, 0x5

    new-array v0, v1, [B

    .line 208
    .local v0, arrayOfByte:[B
    const/16 v1, 0x56

    aput-byte v1, v0, v2

    .line 209
    const/4 v1, 0x1

    int-to-byte v2, p1

    aput-byte v2, v0, v1

    .line 210
    const/4 v1, 0x2

    int-to-byte v2, p2

    aput-byte v2, v0, v1

    .line 211
    const/4 v1, 0x3

    int-to-byte v2, p3

    aput-byte v2, v0, v1

    .line 212
    const/4 v1, 0x4

    const/16 v2, -0x56

    aput-byte v2, v0, v1

    .line 213
    invoke-direct {p0, v0}, Lcom/Zengge/Sockets;->send([B)V

    .line 214
    return-void
.end method


.method private send([B)V
    .locals 2
    .parameter "paramArrayOfByte"

    .prologue
    .line 83
    :try_start_0
    iget-object v1, p0, Lcom/Zengge/Sockets;->socket:Ljava/net/Socket;

    invoke-virtual {v1}, Ljava/net/Socket;->getOutputStream()Ljava/io/OutputStream;

    move-result-object v1

    invoke-virtual {v1, p1}, Ljava/io/OutputStream;->write([B)V
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    .line 89
    :goto_0
    return-void

    .line 85
    :catch_0
    move-exception v0

    .line 87
    .local v0, e:Ljava/io/IOException;
    invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_0
.end method
Перед методом установки цвета вроде никаких инициализаций не выполняется.
Пытаюсь сделать тоже на с# (Пример клиента первый же из гугла камнями не кидайтесь)

C#
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
static void SendMessageFromSocket(int port)
        {
            byte[] bytes = new byte[1024];
            IPAddress ipAddr = IPAddress.Parse("192.168.10.1");
            IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port);
 
            Socket sender = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
 
            sender.Connect(ipEndPoint);
 
            Console.Write("Соединено!!!\n");
            Console.WriteLine("Сокет соединяется с {0} ", sender.RemoteEndPoint.ToString());
            byte[] msg = new byte[5];
 
            int r = 255;
            int g = 255;
            int b = 255;
            msg[0] = 0x45;
            msg[1] = (byte)r;
            msg[2] = (byte)g;
            msg[3] = (byte)b;
            msg[4] = 0x56;
 
            int bytesSent = sender.Send(msg);
 
            sender.Shutdown(SocketShutdown.Both);
            sender.Close();
        }
Результата ни какого, плюс сразу вопрос в byte отриц. число нельзя записать msg[4] = -0x56 (в smali -0x56 написано).
Пробовал тоже самое на java (уже можно записать msg[4] = -0x56 )
Пример кода тоже на java первый же запрос у гугле
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
public static void main(String[] args) {
         int serverPort =5577; // здесь обязательно нужно указать порт к которому привязывается сервер.
            String address = "192.168.10.1"; // это IP-адрес компьютера, где исполняется наша серверная программа. 
                                          // Здесь указан адрес того самого компьютера где будет исполняться и клиент.
 
            try {
                InetAddress ipAddress = InetAddress.getByName(address); // создаем объект который отображает вышеописанный IP-адрес.
 
                Socket socket = new Socket(ipAddress, serverPort); // создаем сокет используя IP-адрес и порт сервера.
 
                // Берем входной и выходной потоки сокета, теперь можем получать и отсылать данные клиентом. 
                InputStream sin = socket.getInputStream();
                OutputStream sout = socket.getOutputStream();
 
                // Конвертируем потоки в другой тип, чтоб легче обрабатывать текстовые сообщения.
                DataInputStream in = new DataInputStream(sin);
                DataOutputStream out = new DataOutputStream(sout);
 
                // Создаем поток для чтения с клавиатуры.
                BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
                String line = null;
                System.out.println("Type in something and press enter. Will send it to the server and tell ya what it thinks.");
                System.out.println();
 
                while (true) {
                    line = keyboard.readLine(); // ждем пока пользователь введет что-то и нажмет кнопку Enter.
                    byte mymsg[] = new byte[5];
                    int r = 255;
                    int g = 255;
                    int b = 255;
                    mymsg[0]=0x56;
                    mymsg[1]=(byte)r;
                    mymsg[2]=(byte)g;
                    mymsg[3]=(byte)b;
                    mymsg[4]=-0x56;
                    System.out.println("Sending this line to the server...");
                    out.write(mymsg); // отсылаем введенную строку текста серверу.
                    out.flush(); // заставляем поток закончить передачу данных.
                    line = in.readUTF(); // ждем неизвестно чего
                    System.out.println();
                }
            } catch (Exception x) {
                x.printStackTrace();
            }
    }
Оба примера подсоединяются, отсылается сообщение, только результата нет никакого.
Может есть знатоки чтения в smali. очень надо надо научиться управлять этой штуковиной, кто поможет даже могу даже скинуться на восстановление потраченного времени путем распития любимого алкогольного напитка (кефира например или др.). Все что есть прилагаю

О великие админы не серчайте если все же не в ту ветку написал)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru