<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[RemoteXY community — Вопрос по звуковому уведомлению]]></title>
		<link>https://forum.remotexy.com/viewtopic.php?id=902</link>
		<atom:link href="https://forum.remotexy.com/extern.php?action=feed&amp;tid=902&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Вопрос по звуковому уведомлению.]]></description>
		<lastBuildDate>Fri, 08 May 2020 10:56:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2939#p2939</link>
			<description><![CDATA[<p>Да, действительно. Вы передвинули объявление переменной start_time в тело цикла loop.<br />В моем примере переменная объявляется глобальной.</p>]]></description>
			<author><![CDATA[null@example.com (remotexy)]]></author>
			<pubDate>Fri, 08 May 2020 10:56:39 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2939#p2939</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2932#p2932</link>
			<description><![CDATA[<p>Hello, try this:</p><div class="codebox"><pre><code>void loop() 
{ 
  RemoteXY_Handler ();

  static uint32_t start_time = 0;

  if (RemoteXY.sound_1 == 0) {  // если мелодия в данный момент не играет
    if (RemoteXY.button_1 != 0) {  // если кнопка нажата
      start_time = millis ();  // запоминаем время когда начали проигрывание
      RemoteXY.sound_1 = 1;  // и запускаем проигрывание
     }
  }
  else {  // иначе молодия играет
    if (millis () - start_time  &gt;= 4000 ) {   // если время проигрывания 4 секунды уже истекло
      RemoteXY.sound_1 = 0;  // останавливаем проигрывание мелодии в RemoteXY
    }
  }  
}</code></pre></div><p>Note the &quot;static&quot; keyword to the variable start_time. It means that this variable will be initialized only once, kind of like a global variable.</p><p>If you need very precise timings like for a music sequencer, then RemoteXY is not the solution because there will always be latency between your controller and your smartphone...</p>]]></description>
			<author><![CDATA[null@example.com (Guillaume)]]></author>
			<pubDate>Wed, 06 May 2020 11:06:38 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2932#p2932</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2928#p2928</link>
			<description><![CDATA[<p>что тут не так - подскажите ! <br /></p><div class="codebox"><pre><code>/*
   -- фары JEEP --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.4.3 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.5.1 or later version;
     - for iOS 1.4.1 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include &lt;RemoteXY.h&gt;

// настройки соединения 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 115200
#define REMOTEXY_WIFI_SSID &quot;JEEP&quot;
#define REMOTEXY_WIFI_PASSWORD &quot;87654321&quot;
#define REMOTEXY_SERVER_PORT 6377


// конфигурация интерфейса  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,12,0,2,0,19,1,10,187,0,
  1,0,4,37,12,12,2,31,208,146,
  208,155,208,149,208,146,208,158,0,1,
  0,17,23,12,12,2,31,208,146,208,
  146,208,149,208,160,208,165,0,1,0,
  17,50,12,12,2,31,208,146,208,157,
  208,152,208,151,0,1,0,31,37,12,
  12,2,31,208,146,208,159,208,160,208,
  144,208,146,208,158,0,1,0,58,36,
  12,12,2,31,208,146,208,155,208,149,
  208,146,208,158,0,1,0,71,22,12,
  12,2,31,208,146,208,146,208,149,208,
  160,208,165,0,1,0,84,36,12,12,
  2,31,208,146,208,159,208,160,208,144,
  208,146,208,158,0,1,0,71,50,12,
  12,2,31,208,146,208,157,208,152,208,
  151,0,1,9,4,2,12,12,134,31,
  208,146,208,154,208,155,0,1,9,30,
  2,12,12,134,31,208,161,208,146,208,
  149,208,162,0,1,9,57,2,12,12,
  134,31,208,161,208,146,208,149,208,162,
  0,1,9,83,2,12,12,134,31,208,
  146,208,154,208,155,0,129,0,12,16,
  21,6,17,208,155,208,149,208,146,208,
  144,208,175,0,129,0,65,16,24,6,
  17,208,159,208,160,208,144,208,146,208,
  144,208,175,0,129,0,42,23,15,6,
  1,74,69,69,80,0,69,1,5,3,
  10,10 };
  
// структура определяет все переменные и события вашего интерфейса управления 
struct {

    // input variables
  uint8_t button_1; // =1 если кнопка нажата, иначе =0 
  uint8_t button_2; // =1 если кнопка нажата, иначе =0 
  uint8_t button_3; // =1 если кнопка нажата, иначе =0 
  uint8_t button_4; // =1 если кнопка нажата, иначе =0 
  uint8_t button_5; // =1 если кнопка нажата, иначе =0 
  uint8_t button_6; // =1 если кнопка нажата, иначе =0 
  uint8_t button_7; // =1 если кнопка нажата, иначе =0 
  uint8_t button_8; // =1 если кнопка нажата, иначе =0 
  uint8_t button_9; // =1 если кнопка нажата, иначе =0 
  uint8_t button_10; // =1 если кнопка нажата, иначе =0 
  uint8_t button_11; // =1 если кнопка нажата, иначе =0 
  uint8_t button_12; // =1 если кнопка нажата, иначе =0 

    // output variables
  int16_t sound_1; // =0 нет звука, иначе ID звука, для примера 1001, смотри список звуков в приложении 
 
    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_BUTTON_1 5
#define PIN_BUTTON_2 4
#define PIN_BUTTON_3 7
#define PIN_BUTTON_4 6
#define PIN_BUTTON_5 11
#define PIN_BUTTON_6 10
#define PIN_BUTTON_7 12
#define PIN_BUTTON_8 13
#define PIN_BUTTON_9 2
#define PIN_BUTTON_10 3
#define PIN_BUTTON_11 8
#define PIN_BUTTON_12 9


void setup() 
{
  RemoteXY_Init (); 
  
  pinMode (PIN_BUTTON_1, OUTPUT);
  pinMode (PIN_BUTTON_2, OUTPUT);
  pinMode (PIN_BUTTON_3, OUTPUT);
  pinMode (PIN_BUTTON_4, OUTPUT);
  pinMode (PIN_BUTTON_5, OUTPUT);
  pinMode (PIN_BUTTON_6, OUTPUT);
  pinMode (PIN_BUTTON_7, OUTPUT);
  pinMode (PIN_BUTTON_8, OUTPUT);
  pinMode (PIN_BUTTON_9, OUTPUT);
  pinMode (PIN_BUTTON_10, OUTPUT);
  pinMode (PIN_BUTTON_11, OUTPUT);
  pinMode (PIN_BUTTON_12, OUTPUT);
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_2, (RemoteXY.button_2==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_3, (RemoteXY.button_3==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_4, (RemoteXY.button_4==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_5, (RemoteXY.button_5==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_6, (RemoteXY.button_6==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_7, (RemoteXY.button_7==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_8, (RemoteXY.button_8==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_9, (RemoteXY.button_9==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_10, (RemoteXY.button_10==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_11, (RemoteXY.button_11==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_12, (RemoteXY.button_12==0)?LOW:HIGH);


  uint32_t start_time = 0;



  if (RemoteXY.sound_1 == 0) {  // если мелодия в данный момент не играет
    if (RemoteXY.button_1 != 0) {  // если кнопка нажата
      start_time = millis ();  // запоминаем время когда начали проигрывание
      RemoteXY.sound_1 = 1;  // и запускаем проигрывание
     }
  }
  else {  // иначе молодия играет
    if (millis () - start_time  &gt;= 4000 ) {   // если время проигрывания 4 секунды уже истекло
      RemoteXY.sound_1 = 0;  // останавливаем проигрывание мелодии в RemoteXY
    }
  }  
}
  
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных
  // не используйте функцию delay() </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (pred3d)]]></author>
			<pubDate>Tue, 05 May 2020 12:37:10 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2928#p2928</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2927#p2927</link>
			<description><![CDATA[<p>не могли бы мне помочь с кодом , чтоб этот таймер отрабатывал как надо? а то в написании кода - я ноль.</p>]]></description>
			<author><![CDATA[null@example.com (pred3d)]]></author>
			<pubDate>Tue, 05 May 2020 08:35:03 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2927#p2927</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2910#p2910</link>
			<description><![CDATA[<div class="quotebox"><cite>remotexy wrote:</cite><blockquote><div class="quotebox"><cite>pred3d wrote:</cite><blockquote><p>Ребят в общем разобрался со звуками. Но хочется чтоб при нажатии на кнопку button_ - файл проигрывался полностью , а не пока кнопка нажата.. Как реализовать?</p></blockquote></div><p>Нет возможности проиграть файл и остановить в конце. Файл проигрывается по кругу пока установлена соответствующая переменная в структуре RemoteXY. Но вы можете запрограммировать проигрывание столько сколько нужно по времени даже после отпускания кнопки.<br />Код будет примерно такой:<br /></p><div class="codebox"><pre><code>uint32_t start_time = 0;

void loop () {

  if (RemoteXY.sound_1 == 0) {  // если мелодия в данный момент не играет
    if (RemoteXY.button_1 != 0) {  // если кнопка нажата
      start_time = millis ();  // запоминаем время когда начали проигрывание
      RemoteXY.sound_1 = 2001;  // и запускаем проигрывание
     }
  }
  else {  // иначе молодия играет
    if (millis () - start_time  &gt;= 10000 ) {   // если время проигрывания 10 секунд уже истекло
      RemoteXY.sound_1 = 0;  // останавливаем проигрывание мелодии в RemoteXY
    }
  }  
}</code></pre></div></blockquote></div><p>убрал старое управление звуком, записал кусок кода , который Вы привели - и теперь звук пытается воспроизводиться самостоятельно при включении контроллера. при чем всегда по разному - проиграет несколько милисекунд - пауза - пару секунд, проиграет почти секунду - пауза - несколько секунд - и так циклично..</p>]]></description>
			<author><![CDATA[null@example.com (pred3d)]]></author>
			<pubDate>Thu, 30 Apr 2020 12:35:25 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2910#p2910</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2898#p2898</link>
			<description><![CDATA[<div class="quotebox"><cite>pred3d wrote:</cite><blockquote><p>Ребят в общем разобрался со звуками. Но хочется чтоб при нажатии на кнопку button_ - файл проигрывался полностью , а не пока кнопка нажата.. Как реализовать?</p></blockquote></div><p>Нет возможности проиграть файл и остановить в конце. Файл проигрывается по кругу пока установлена соответствующая переменная в структуре RemoteXY. Но вы можете запрограммировать проигрывание столько сколько нужно по времени даже после отпускания кнопки.<br />Код будет примерно такой:<br /></p><div class="codebox"><pre><code>uint32_t start_time = 0;

void loop () {

  if (RemoteXY.sound_1 == 0) {  // если мелодия в данный момент не играет
    if (RemoteXY.button_1 != 0) {  // если кнопка нажата
      start_time = millis ();  // запоминаем время когда начали проигрывание
      RemoteXY.sound_1 = 2001;  // и запускаем проигрывание
     }
  }
  else {  // иначе молодия играет
    if (millis () - start_time  &gt;= 10000 ) {   // если время проигрывания 10 секунд уже истекло
      RemoteXY.sound_1 = 0;  // останавливаем проигрывание мелодии в RemoteXY
    }
  }  
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (remotexy)]]></author>
			<pubDate>Sat, 25 Apr 2020 13:56:46 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2898#p2898</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2896#p2896</link>
			<description><![CDATA[<p>Ребят в общем разобрался со звуками. Но хочется чтоб при нажатии на кнопку button_ - файл проигрывался полностью , а не пока кнопка нажата.. Как реализовать?</p>]]></description>
			<author><![CDATA[null@example.com (pred3d)]]></author>
			<pubDate>Fri, 24 Apr 2020 14:03:45 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2896#p2896</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2573#p2573</link>
			<description><![CDATA[<p>Эта функция пока еще недоступна. Появится в самое ближайшее время.</p>]]></description>
			<author><![CDATA[null@example.com (remotexy)]]></author>
			<pubDate>Sun, 23 Feb 2020 05:09:11 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2573#p2573</guid>
		</item>
		<item>
			<title><![CDATA[Вопрос по звуковому уведомлению]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=2571#p2571</link>
			<description><![CDATA[<p>Что-то не пойму как мне включить звуковое уведомление в последней версии вашей программы.</p>]]></description>
			<author><![CDATA[null@example.com (340052)]]></author>
			<pubDate>Sat, 22 Feb 2020 20:13:15 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=2571#p2571</guid>
		</item>
	</channel>
</rss>
