Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 14.01.2019, 17:31   #1
non.intellegunt
Новичок
 
Регистрация: 14.01.2019
Сообщений: 3
Репутация: 10
По умолчанию С+

Добрый день, господа. Мной изучается язык ассемблера, на языке Си я не бум-бум, да и нет необходимости таковой, поэтому мой вопрос вполне может показаться глупым - Данный код написан на языке Си? Если что, то данный код написан под ардуино.
Код:

#include <OneWire.h>  //Подключаем библиотеку для обмена с датчиком температуры
#include <avr/wdt.h>  //Подключаем библиотеку для использования сторожевого таймера

//----------------------------------Флаги -----------------------------------------
bool GPRS_connect=false;     
bool CSt_send_success=true; 
bool BT_send_success=true;   
bool change_request = false;
bool blink_led;            
//----------------------------------------------------------------------------------

//--------------------------------------
int Command;          
int Command_o=-1;   
int term;            
int term_o;         

int GET_step, GET_step_o;    
int SRead_step, SRead_step_o;
unsigned long Startup_time_s;     
unsigned long Last_succsess_time; 
unsigned long Last_blink_time;    

int DO=38;            
long int LOG=1234;     
long int PAS=1111;     

OneWire  ds(42);      
byte data[2];        

unsigned char Step;      
String responce_status; 
 
String Request;          
String Responce;         
String SIM_Data;                

void setup()
{
 /* ----------------------Включаем сторожевой таймер на 8 секунд.---------------- */
                                     */
 wdt_enable(WDTO_8S);

 /*Формируем первичный запрос к серверу.                                     */
 
 Request = "http://t.lazysmart.ru/device_status.php?LOG=";
 Request+=String(LOG);
 Request+="&PAS=";
 Request+=String(PAS);

 /*Инициализируем COM-порты*/
 Serial.begin(57600);                  
 Serial1.begin(19200);                 
 Serial1.setTimeout(1000);             

 /*Инициализируем порт, который управляет реле перезагрузки модема*/ 
 pinMode(48,OUTPUT);  //Для вкл./выкл. модема

 /*Инициализируем порты, к которым подлючены сигнальные светодиоды*/ 
 pinMode(49,OUTPUT);  
 pinMode(50,OUTPUT);  
 pinMode(52,OUTPUT);  

 /*Инициализируем порт, который управляет выходным реле*/ 
 pinMode(DO,OUTPUT); 

 digitalWrite(48,HIGH); 
 digitalWrite(49,HIGH); 

 /*Запускаем модем*/
 powerUp();           //Запускаем GPRS-модем
 //---------------------------!ИНИЦИАЛИЗАЦИЯ ЗАВЕРШЕНА-----------------------------------------------------------------------------
 
 //---------------------------ПОДКЛЮЧЕНИЕ К GPRS-----------------------------------------------------------------------------------
 GPRS_Init();
}
 //--------------------------!ПОДКЛЮЧЕНИЕ К GPRS-----------------------------------------------------------------------------------

 //--------------------------------------ОСНОВНОЙ ЦИКЛ-----------------------------------------------------------------------------
void loop()
{    
  //Моргаем сетодиодом "В работе" не чаще раза в секунду
  if(blink_led && Last_blink_time - (millis()/1000) > 1){
    Last_blink_time = (millis()/1000);    //Время с момента последнего моргания 
    digitalWrite(49,LOW); //Переключаем светодиод "В работе"
    blink_led = false;
  }
  else if(Last_blink_time - (millis()/1000) > 1){
    Last_blink_time = (millis()/1000);    //Время с момента последнего моргания 
    digitalWrite(49,HIGH); //Переключаем светодиод "В работе"
    blink_led = true;
  }

  /*Главный цикл программы выполняется пошагово*/
  if(Step != ' '){
     switch(Step){
        /* На первом шаге отправляем запрос серверу */
        case '1': {                                       
                    digitalWrite(50,HIGH); //Зажигаем светодиод при отправке запроса
                    int SendStatus = SendGETRequest();
                    // Определяем статус отправки запроса
                    if(SendStatus==1){                      
                      Step = '2';   //Запрос успешно отправлен - переходим к следующему шагу
                    }
                    else if(SendStatus==-1){                      
                      SIM900_Reload();  //При отправке возникла критическая ошибка - нужно перезагрузить модем
                    }          
                  }
                  break; 
                  
        /* На втором шаге ожидаем ответ сервера */
        case '2': switch(WaitForResponce()){
                     case 0: {
                             break; //еще анализируем ответ от сервера
                     }
                     case 1: {
                            //Ответ получен успешно
                             PrintlnToSerial(Responce); //Посылаем текст ответа на отладочный порт  
                             digitalWrite(50,LOW);      //Гасим светодиод при успешном ответе
                             String S = AnalizeResponce("COMMAND"); //По кодовому слову "вычленяем" полезные данные из ответа                                                        
                             if(S != "NOT_STR"){
                                //Если ответ валиден и в нём найдены полезнае данные (команда устройству от сервера) - 
                                // то выполняем полученные команду, если она отлична от предыдущей
                                PerformCommands(S);
                             }
                             Step = '3'; //Переходим на следующий шаг
                             break; 
                     }
                     case -1:{
                             Step = '1';    //Возникла ошибка, вернул -1. Возвращаемся на предыдущий шаг для отправки нового запроса                            
                     }
                  }
                  break;

        /* На третьем шаге производится обмен с датчиком температуры (для получения её актуального значения),
           выполняются полученные от сервера команды и формируется новый запрос */          
        case '3': {
                     AnalizeSystem();                                      
                     Step = '1'; //Возвращаемся на первый шаг
                  }
     }           
  }
  
  //Сбрасываем сторожевой таймер на каждом цикле программы
  wdt_reset();
  

/*-------------------------------------------------------------------------------------------------------------------*/

   }   
}

/*-------------------------------------------------------------------------------------------------------------------*/

non.intellegunt вне форума   Ответить с цитированием
Старый 14.01.2019, 17:46   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 13,109
Репутация: 2237
По умолчанию

Нет. На С++. Либа же на С++ написана...
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 14.01.2019, 17:56   #3
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,559
Репутация: 3356

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от non.intellegunt Посмотреть сообщение
Я, как и любой другой человек, многое не знаю
В том числе и о существовании подписей на форумах.

...и о разнице между == и != похоже тоже.
Alex11223 на форуме   Ответить с цитированием
Старый 14.01.2019, 17:59   #4
non.intellegunt
Новичок
 
Регистрация: 14.01.2019
Сообщений: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
В том числе и о существовании подписей на форумах.

...и о разнице между == и != похоже тоже.
ХАХАХАХАХАХ, ЭТО ПОДПИСЬ? РОФЛ..Боже, испанский стыд, и не только испанский.

Последний раз редактировалось non.intellegunt; 14.01.2019 в 18:02.
non.intellegunt вне форума   Ответить с цитированием
Старый 14.01.2019, 18:03   #5
Алексей_2012
t45t
Профессионал
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Адрес: пгт. Балакирево
Сообщений: 1,736
Репутация: 279

icq: 649899888
По умолчанию

это скетч, написан на С++...

о правилах форума автор, наверное, тоже еще не знает.

к чему данный вопрос об ЯП?
__________________
from dark to light)
Алексей_2012 на форуме   Ответить с цитированием
Старый 14.01.2019, 18:09   #6
non.intellegunt
Новичок
 
Регистрация: 14.01.2019
Сообщений: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
это скетч, написан на С++...

о правилах форума автор, наверное, тоже еще не знает.

к чему данный вопрос об ЯП?
Благодарю за ответ.
Да, с правилами и самим форумом не успел ознакомиться, и непривычно, что подпись что так низко к сообщению.
ЯП мне нужно знать для себя в большей степени.
non.intellegunt вне форума   Ответить с цитированием
Старый 14.01.2019, 18:11   #7
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,559
Репутация: 3356

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от non.intellegunt Посмотреть сообщение
ХАХАХАХАХАХ, ЭТО ПОДПИСЬ? РОФЛ..Боже, испанский стыд, и не только испанский.
Ну эта подпись видимо в основном и предназначена для такого троллинга ) (эксплойт лени админа не меняющего стиль подписей)
Alex11223 на форуме   Ответить с цитированием
Старый 14.01.2019, 18:39   #8
digitalis
Профессионал
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 1,193
Репутация: 445
По умолчанию

Эта программа для микроконтроллера AVR. Если есть желание изучать С (++) для РС-совместимых компов, то образец мало подходящий, потому что в данной версии языка сильная зависимость от архитектуры самого МК. Я так думаю.
digitalis вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


18:58.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru