Показано с 1 по 3 из 3

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Продвинутый Аватар для Pinin
    Регистрация
    04.01.2009
    Возраст
    60
    Сообщений
    213
    Вес репутации
    245

    По умолчанию RoadRunner Plugin и Arduino

    В ветке про центрифужный плагин прозвучала просьба сбацать что-то наподобие под RR. Поскольку в рамках своего проекта мне понадобилась такая фича и нашлись добрые люди, не погнушавшиеся помочь советом чайнику от программирования - выкладываю результат.

    В аттаче - экзешник и исходники: с минимальными доработками по месту любой может заточить интерфейс под себя , внешний вид интерфейса не изменился с тех пор.

    Листинг с комментами:

    PHP код:
    import processing.serial.*;   
    Serial port;  
    int x,y,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,w1,h1,w6,h6,lock;

    PImage bs;     // Все кнопки не нажаты 
    PImage dw;     // Все кнопки не нажаты, нажата "DIM" 
    PImage dw1;    // Все кнопки не нажаты, нажата "MENU" 
    PImage dw2;    // Все кнопки не нажаты, нажата "MUTE" 
    PImage dw3;    // Все кнопки не нажаты, нажата "HW/CITY" 
    PImage dw4;    // Все кнопки не нажаты, нажата "VOL_UP" 
    PImage dw5;    // Все кнопки не нажаты, нажата "VOL_DOWN" 
    PImage dw6;    // Все кнопки не нажаты, нажата "ПИТАНИЕ" 

    void setup() 

      
    port = new Serial(this"COM5"115200); // Прописываем COM-порт на котором у вас сидит Carduino 
       
      
    size(800600);//размер окна 
         
      
    bs loadImage("BG.jpg");             //загрузить все кнопки ненажатыми 
      
    dw loadImage("DIM_down.jpg");       //загрузить изображение с нажатой кнопкой "DIM" 
      
    dw1 loadImage("MENU_down.jpg");     //загрузить изображение с нажатой кнопкой "MENU" 
      
    dw2 loadImage("MUTE_down.jpg");     //загрузить изображение с нажатой кнопкой "MUTE" 
      
    dw3 loadImage("HW_down.jpg");       //загрузить изображение с нажатой кнопкой "HW/CITY" 
      
    dw4 loadImage("VOL_UP_down.jpg");   //загрузить изображение с нажатой кнопкой "VOL_UP" 
      
    dw5 loadImage("VOL_DOWN_down.jpg"); //загрузить изображение с нажатой кнопкой "VOL_DOWN" 
      
    dw6 loadImage("7_down.jpg");        //загрузить изображение с нажатой кнопкой "ПИТАНИЕ" 
      
    w1 140;      // Размер малой кнопки по горизонтали 
      
    h1 50;       // Размер  малой кнопки по вертикали 
      
    w6 100;      // Размер большой кнопки по горизонтали 
      
    h6 90;       // Размер большой кнопки по вертикали 
      
    17;        // Х начальная координата кнопки "DIM" 
      
    472;       // y начальная координата кнопки "DIM" 
      
    x1167;       // Х начальная координата кнопки "MENU" 
      
    y1472;       // y начальная координата кнопки "MENU" 
      
    x2321;       // Х начальная координата кнопки "MUTE" 
      
    y2472;       // y начальная координата кнопки "MUTE" 
      
    x3471;       // Х начальная координата кнопки "HW/CITY" 
      
    y3472;       // y начальная координата кнопки "HW/CITY" 
      
    x4170;       // Х начальная координата кнопки "VOL_UP" 
      
    y4395;       // y начальная координата кнопки "VOL_UP" 
      
    x5321;       // Х начальная координата кнопки "VOL_DOWN" 
      
    y5395;       // y начальная координата кнопки "VOL_DOWN" 
      
    x6682;       // Х начальная координата кнопки "ПИТАНИЕ" 
      
    y6435;       // y начальная координата кнопки "ПИТАНИЕ" 
      
    image(bs,0,0); // Нарисовать в окне все кнопки ненажатыми 
      



    void draw() 
    {   
      if( 
    mousePressed
       { 
         
    // Если кнопка нажата (lock==1) грузим соответствующую картинку, пишем в порт данные и
         // выставляем lock=0 (кнопка без фиксации нажатия)
        
         // Проверка нажатия в области "DIM" 
         
    if (mousePressed && (mouseX >= && mouseX <= w1 && mouseY >= && mouseY <= h1)) 
         {
         if(
    lock==1){image(dw00);port.write('1');  // Однократная посылка данных в порт
         
    }
         
    lock=0;
         }
              
         
    // Проверка нажатия в области "MENU" 
          
    if (mouseX >= x1 && mouseX <= x1 w1 && mouseY >= y1 && mouseY <= y1 h1
         {   
         if(
    lock==1){image(dw100);port.write('3');  // Однократная посылка данных в порт
         
    }
         
    lock=0;
         }
         
         
    // Проверка нажатия в области "MUTE" 
         
    if (mouseX >= x2 && mouseX <= x2 w1 && mouseY >= y2 && mouseY <= y2 h1
         {   
         if(
    lock==1){image(dw200);port.write('5');  // Однократная посылка данных в порт
         
    }
         
    lock=0;
         }  
         
         
    // Проверка нажатия в области "HW/CITY" 
         
    if (mouseX >= x3 && mouseX <= x3 w1 && mouseY >= y3 && mouseY <= y3 h1
         {   
         if(
    lock==1){image(dw300);port.write('7'); // Однократная посылка данных в порт
         
    }
         
    lock=0;   
         }  
         
    // Проверка нажатия в области "VOL_UP" 
         
    if (mouseX >= x4 && mouseX <= x4 w1 && mouseY >= y4 && mouseY <= y4 h1
         { 
          
    port.write('9');  // Непрерывно шлет данные в порт при нажатой кнопке
         
    delay (50); 
         if(
    lock==1){image(dw400);
         }
         
    lock=0;    
         }  
         
    // Проверка нажатия в области "VOL_DOWN" 
         
    if (mouseX >= x5 && mouseX <= x5 w1 && mouseY >= y5 && mouseY <= y5 h1
         {  
          
    port.write('b');  // Непрерывно шлет данные в порт при нажатой кнопке
          
    delay (50);
         if(
    lock==1){image(dw500);
         }
         
    lock=0;   
         }  
         
    // Проверка нажатия в области "ПИТАНИЕ" 
         
    if (mouseX >= x6 && mouseX <= x6 w6 && mouseY >= y6 && mouseY <= y6 h6
         {   
         if(
    lock==1){image(dw600);port.write('d');  // Однократная посылка данных в порт
         
    }
         
    lock=0;    
         }  
            
       }
    if(!
    mousePressed){
    if(
    lock==0){image(bs00);lock=1;
    }
    }
       

    Здесь (и в экзешнике!) под Ардуину отведет 5 СОМ. Если у вас иначе - просто поправьте на нужный и перекомпилируйте *.exe
    На всякий случай - в procissing`е: File - Export Application - Export. Файл будет в папке application.windows (ежели вы, конечно, делали его под винды )

    В интерфейсе семь кнопок: пять из них без фиксации нажатия и отправкой в порт одной команды, две - тоже без фиксации, но при длительном нажатии на них долбящих в порт одну команду непрерывно (думаю, все понимают, как работают кнопки регулировки громкости - а это они и есть).

    Поизучав содержимое void setup, нетрудно разобраться в том, как можно вообще изменить графику интерфейса, камня на камне не оставив от того, что сделал я для себя (SkinEditor вам в помощь ).

    Со своей стороны еще раз выражаю искреннюю благодарность Chip`у и AlexNS за помощь в работе над проектом.

    Успехов всем!
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Export.jpg 
Просмотров:	270 
Размер:	53.4 Кб 
ID:	7489  
    Вложения Вложения

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •