Помогите со скетчем

Dona_balkanska
Dona_balkanska аватар
Offline
Зарегистрирован: 16.10.2016

Скетч"Отслеживания посылки с помощтью GPS"Помогите мне поставить комментарии после каждой строки.

        //передача данных на сервер
        #include <SPI.h>
	#include <Mirf.h>
	#include <MirfHardwareSpiDriver.h>
	#define MAX_BUFF 32
	 
	String mess = "",
	       mess2 = "",
	       result_mess = "";
	char buff[MAX_BUFF],
     check[MAX_BUFF];
	 
    int i = 0;
 
	void setup(){
    Serial.begin(9600);
    Mirf.cePin = 48;
    Mirf.csnPin = 53;
 	  Mirf.spi = &MirfHardwareSpi;
	  Mirf.init();
	 
    Mirf.setRADDR((byte *)"app1");
	  Mirf.setTADDR((byte *)"app2");
	 
	  Mirf.payload = MAX_BUFF;
	  Mirf.channel = 10;
	  Mirf.config();
	 
	  Serial.println("Start..");
	}
 
     void loop(){
 	 
	  boolean m1 = false,
     m2 = false;
  
 	  while (true) {
       readMessage(buff);
       switch(buff[0]) {
	   case '1':
	      check[0] = buff[2];
	      check[1] = buff[3];    
	      m1 = true;
      // Serial.print(check);
        break;
        case '2':
	      if(m1) {
            mess += String(buff);
	        m1 = false;
	        m2 = true;
	      }      
        break;
	    case '3':
	      if(m2) {
	        mess.remove(0,2);
	        mess2 = String(buff);
	        mess2.remove(0,2);
	        mess += ',' + mess2;
            m1 = false;
            m2 = false;
	        if(Cheksum(check,mess))
	        {
            Serial.println(mess);
	        }
	        mess = "";
	        mess2 = "";
            } 
	      break;
	    } 
	  }
	}
	 
	boolean Cheksum(char ch[],String mess)
	{
	  byte r = 0;
	  byte sise=mess.length();
	  byte b[sise];
	   
	  mess.getBytes(b,sise);
	   
	  for(byte j=0;j<sise;j++)
	    r^=b[j];
	  return (atoi(ch) == r) ? true : false;
	}
	 
	void readMessage(char *buff) {
	  if(Mirf.dataReady()) {
	    Mirf.getData((uint8_t *)buff);
	  }
	}
 
//передача данных клиенту с GPS
 
	#include <TinyGPS++.h>
	#include <SoftwareSerial.h>
	#include <SPI.h>
	#include <Mirf.h>
	#include <nRF24L01.h>
	#include <MirfHardwareSpiDriver.h>
	#define MAX_BUFF 32 //буфер приема-передачи
	 
	static const int RXPin = 4, TXPin = 3;
	TinyGPSPlus gps;
	 
	SoftwareSerial ss(RXPin, TXPin);
	 
	void setup()
	{
	  
	  Serial.begin(9600);
	  ss.begin(9600);
	  Mirf.spi = &MirfHardwareSpi;
	  Mirf.init();
	  Mirf.cePin=7;
	  Mirf.csnPin=8;
	  Mirf.setRADDR((byte *)"app2"); //Здесь задаём адрес
	  Mirf.payload = 32; //Здесь задаём буфер
	  Mirf.channel = 10;
	  Mirf.setTADDR((byte *)"app1");
	  Mirf.config();
	 }
	  
	void loop()
	{
	 static boolean sch = true;
	 ss.println();
	 while (ss.available() > 0)
	    if (gps.encode(ss.read())&&gps.location.isValid()&& gps.date.isValid())
	    {    
	       if(sch)
	         BildAndSendServer();
	          
	       sch = (sch) ? false : true;
	    }
	     
	}
	 
	byte cheksum(String str)
	{
	  byte r=0;
	  byte sise=str.length();
	   byte b[sise];
	  str.getBytes(b,sise);
	  
	  for(byte i=0;i<sise;i++)
	  r^=b[i];
	    
	  return r;
	   
	}
	 
	void BildAndSendServer()
	{
	  double timed=gps.time.value()/100.0;
	  String message1 = String(timed)+","+String(gps.location.lat(),6)+","+String(gps.location.lng(),6)+",";
	  String message2=String(gps.speed.kmph())+","+String(gps.altitude.meters())+","+String(gps.course.deg());
	  char ch1[32], ch2[32],chek[7];
	  
	  
	  String cheks="1,"+String (cheksum(message1+message2));
	  message1="2,"+message1;
	   
	  message2="3,"+message2;
	    message1.toCharArray(ch1,message1.length());
	  message2.toCharArray(ch2,message2.length()+1);
	  cheks.toCharArray(chek,7);
	    
	   Mirf.send((uint8_t *)chek);
	  while(Mirf.isSending()){
	    }
	     delay(100);
	    Mirf.send((uint8_t *)ch1);
	    while(Mirf.isSending()){
	    }
	     delay(100);
	    Mirf.send((uint8_t *)ch2);
	     while(Mirf.isSending()){
	    }
	 delay(100);
	}
 
Dona_balkanska
Dona_balkanska аватар
Offline
Зарегистрирован: 16.10.2016
 //передача данных на сервер
        #include <SPI.h>
	#include <Mirf.h>
	#include <MirfHardwareSpiDriver.h>
	#define MAX_BUFF 32
	 
	String mess = "",
	       mess2 = "",
	       result_mess = "";
	char buff[MAX_BUFF],
     check[MAX_BUFF];
	 
    int i = 0;
 
	void setup(){
    Serial.begin(9600);
    Mirf.cePin = 48;
    Mirf.csnPin = 53;
 	  Mirf.spi = &MirfHardwareSpi;
	  Mirf.init();
	 
    Mirf.setRADDR((byte *)"app1");
	  Mirf.setTADDR((byte *)"app2");
	 
	  Mirf.payload = MAX_BUFF;
	  Mirf.channel = 10;
	  Mirf.config();
	 
	  Serial.println("Start..");
	}
 
     void loop(){
 	 
	  boolean m1 = false,
     m2 = false;
  
 	  while (true) {
       readMessage(buff);
       switch(buff[0]) {
	   case '1':
	      check[0] = buff[2];
	      check[1] = buff[3];    
	      m1 = true;
      // Serial.print(check);
        break;
        case '2':
	      if(m1) {
            mess += String(buff);
	        m1 = false;
	        m2 = true;
	      }      
        break;
	    case '3':
	      if(m2) {
	        mess.remove(0,2);
	        mess2 = String(buff);
	        mess2.remove(0,2);
	        mess += ',' + mess2;
            m1 = false;
            m2 = false;
	        if(Cheksum(check,mess))
	        {
            Serial.println(mess);
	        }
	        mess = "";
	        mess2 = "";
            } 
	      break;
	    } 
	  }
	}
	 
	boolean Cheksum(char ch[],String mess)
	{
	  byte r = 0;
	  byte sise=mess.length();
	  byte b[sise];
	   
	  mess.getBytes(b,sise);
	   
	  for(byte j=0;j<sise;j++)
	    r^=b[j];
	  return (atoi(ch) == r) ? true : false;
	}
	 
	void readMessage(char *buff) {
	  if(Mirf.dataReady()) {
	    Mirf.getData((uint8_t *)buff);
	  }
	}
 
//передача данных клиенту с GPS
 
	#include <TinyGPS++.h>
	#include <SoftwareSerial.h>
	#include <SPI.h>
	#include <Mirf.h>
	#include <nRF24L01.h>
	#include <MirfHardwareSpiDriver.h>
	#define MAX_BUFF 32 //буфер приема-передачи
	 
	static const int RXPin = 4, TXPin = 3;
	TinyGPSPlus gps;
	 
	SoftwareSerial ss(RXPin, TXPin);
	 
	void setup()
	{
	  
	  Serial.begin(9600);
	  ss.begin(9600);
	  Mirf.spi = &MirfHardwareSpi;
	  Mirf.init();
	  Mirf.cePin=7;
	  Mirf.csnPin=8;
	  Mirf.setRADDR((byte *)"app2"); //Здесь задаём адрес
	  Mirf.payload = 32; //Здесь задаём буфер
	  Mirf.channel = 10;
	  Mirf.setTADDR((byte *)"app1");
	  Mirf.config();
	 }
	  
	void loop()
	{
	 static boolean sch = true;
	 ss.println();
	 while (ss.available() > 0)
	    if (gps.encode(ss.read())&&gps.location.isValid()&& gps.date.isValid())
	    {    
	       if(sch)
	         BildAndSendServer();
	          
	       sch = (sch) ? false : true;
	    }
	     
	}
	 
	byte cheksum(String str)
	{
	  byte r=0;
	  byte sise=str.length();
	   byte b[sise];
	  str.getBytes(b,sise);
	  
	  for(byte i=0;i<sise;i++)
	  r^=b[i];
	    
	  return r;
	   
	}
	 
	void BildAndSendServer()
	{
	  double timed=gps.time.value()/100.0;
	  String message1 = String(timed)+","+String(gps.location.lat(),6)+","+String(gps.location.lng(),6)+",";
	  String message2=String(gps.speed.kmph())+","+String(gps.altitude.meters())+","+String(gps.course.deg());
	  char ch1[32], ch2[32],chek[7];
	  
	  
	  String cheks="1,"+String (cheksum(message1+message2));
	  message1="2,"+message1;
	   
	  message2="3,"+message2;
	    message1.toCharArray(ch1,message1.length());
	  message2.toCharArray(ch2,message2.length()+1);
	  cheks.toCharArray(chek,7);
	    
	   Mirf.send((uint8_t *)chek);
	  while(Mirf.isSending()){
	    }
	     delay(100);
	    Mirf.send((uint8_t *)ch1);
	    while(Mirf.isSending()){
	    }
	     delay(100);
	    Mirf.send((uint8_t *)ch2);
	     while(Mirf.isSending()){
	    }
	 delay(100);
	}
 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Dona_balkanska пишет:
Помогите мне поставить комментарии после каждой строки. 

Чего сделать? Комментарии расставить? А зачем?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Присоединяюсь к предыдущему оратору: "комментарии" делаются ДО написания кода, а НЕ ПОСЛЕ.

Механика такая:

1. Пишешь алгоритм по-русски. В текстовом редакторе.

2. Оформляешь их как комментарии в выбранном языке программирования.

3. Между ними вписываешь перевод с русского на выбранный язык программирования.

4. Все - код с комментариями готов.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
        //передача данных на сервер
        #include <SPI.h> // Мой дядя самых честных правил,
	#include <Mirf.h>// Когда не в шутку занемог,
	#include <MirfHardwareSpiDriver.h> //Он уважать себя заставил
	#define MAX_BUFF 32// И лучше выдумать не мог.
	 
	String mess = "", // Его пример другим наука;
	       mess2 = "", // Но, боже мой, какая скука
	       result_mess = "";// С больным сидеть и день и ночь,
	char buff[MAX_BUFF],//Не отходя ни шагу прочь!
     check[MAX_BUFF];//Какое низкое коварство
	 
    int i = 0;//Полуживого забавлять,
 
	void setup(){//Ему подушки поправлять,
    Serial.begin(9600);//Печально подносить лекарство,
    Mirf.cePin = 48;//Вздыхать и думать про себя:
    Mirf.csnPin = 53;//Когда же черт возьмет тебя!»
 	  Mirf.spi = &MirfHardwareSpi;//Так думал молодой повеса,
	  Mirf.init();//Летя в пыли на почтовых,
	 
    Mirf.setRADDR((byte *)"app1");//Всевышней волею Зевеса
	  Mirf.setTADDR((byte *)"app2");//Наследник всех своих родных. —
	 
	  Mirf.payload = MAX_BUFF;//Друзья Людмилы и Руслана!
	  Mirf.channel = 10;//С героем моего романа
	  Mirf.config();//Без предисловий, сей же час
	 
	  Serial.println("Start..");//Позвольте познакомить вас:
	}
 
     void loop(){//Онегин, добрый мой приятель,
 	 
	  boolean m1 = false,//Родился на брегах Невы,
     m2 = false;//Где, может быть, родились вы
  
 	  while (true) {//Или блистали, мой читатель;
       readMessage(buff);//Там некогда гулял и я:
       switch(buff[0]) {//Но вреден север для меня 
	   case '1'://Служив отлично-благородно,
	      check[0] = buff[2];//Долгами жил его отец,
	      check[1] = buff[3];//Давал три бала ежегодно  
	      m1 = true;//И промотался наконец.
      // Serial.print(check);
        break;//Судьба Евгения хранила:
        case '2'://Сперва Madame за ним ходила,
	      if(m1) {//Потом Monsieur ее сменил;
            mess += String(buff);//Ребенок был резов, но мил.
	        m1 = false;//Monsieur l’Abbe?, француз убогой,
	        m2 = true;//Чтоб не измучилось дитя,
	      }      
        break;//Учил его всему шутя,
	    case '3'://Не докучал моралью строгой,
	      if(m2) {//Слегка за шалости бранил
	        mess.remove(0,2);//И в Летний сад гулять водил.
	        mess2 = String(buff);//Когда же юности мятежной
	        mess2.remove(0,2);//Пришла Евгению пора,
	        mess += ',' + mess2;//Пора надежд и грусти нежной,
            m1 = false;//Monsieur прогнали со двора.
            m2 = false;//Вот мой Онегин на свободе;
	        if(Cheksum(check,mess))//Острижен по последней моде;
	        {
            Serial.println(mess);//Как dandy  лондонский одет —
	        }
	        mess = "";//И наконец увидел свет.
	        mess2 = "";//Он по-французски совершенно
            } 
	      break;//Мог изъясняться и писал;
	    } 
	  }
	}
	 
	boolean Cheksum(char ch[],String mess)//Легко мазурку танцевал
	{
	  byte r = 0;//И кланялся непринужденно;
	  byte sise=mess.length();//Чего ж вам больше? Свет решил,
	  byte b[sise];//Что он умен и очень мил.
	   
	  mess.getBytes(b,sise);//Мы все учились понемногу
	   
	  for(byte j=0;j<sise;j++)//Чему-нибудь и как-нибудь,
	    r^=b[j];//Так воспитаньем, слава богу,
	  return (atoi(ch) == r) ? true : false;//У нас немудрено блеснуть.
	}
	 
	void readMessage(char *buff) {//
	  if(Mirf.dataReady()) {
	    Mirf.getData((uint8_t *)buff);
	  }
	}
 
//передача данных клиенту с GPS
 
	#include <TinyGPS++.h>
	#include <SoftwareSerial.h>
	#include <SPI.h>
	#include <Mirf.h>
	#include <nRF24L01.h>
	#include <MirfHardwareSpiDriver.h>
	#define MAX_BUFF 32 //буфер приема-передачи
	 
	static const int RXPin = 4, TXPin = 3;
	TinyGPSPlus gps;
	 
	SoftwareSerial ss(RXPin, TXPin);
	 
	void setup()
	{
	  
	  Serial.begin(9600);
	  ss.begin(9600);
	  Mirf.spi = &MirfHardwareSpi;
	  Mirf.init();
	  Mirf.cePin=7;
	  Mirf.csnPin=8;
	  Mirf.setRADDR((byte *)"app2"); //Здесь задаём адрес
	  Mirf.payload = 32; //Здесь задаём буфер
	  Mirf.channel = 10;
	  Mirf.setTADDR((byte *)"app1");
	  Mirf.config();
	 }
	  
	void loop()
	{
	 static boolean sch = true;
	 ss.println();
	 while (ss.available() > 0)
	    if (gps.encode(ss.read())&&gps.location.isValid()&& gps.date.isValid())
	    {    
	       if(sch)
	         BildAndSendServer();
	          
	       sch = (sch) ? false : true;
	    }
	     
	}
	 
	byte cheksum(String str)
	{
	  byte r=0;
	  byte sise=str.length();
	   byte b[sise];
	  str.getBytes(b,sise);
	  
	  for(byte i=0;i<sise;i++)
	  r^=b[i];
	    
	  return r;
	   
	}
	 
	void BildAndSendServer()
	{
	  double timed=gps.time.value()/100.0;
	  String message1 = String(timed)+","+String(gps.location.lat(),6)+","+String(gps.location.lng(),6)+",";
	  String message2=String(gps.speed.kmph())+","+String(gps.altitude.meters())+","+String(gps.course.deg());
	  char ch1[32], ch2[32],chek[7];
	  
	  
	  String cheks="1,"+String (cheksum(message1+message2));
	  message1="2,"+message1;
	   
	  message2="3,"+message2;
	    message1.toCharArray(ch1,message1.length());
	  message2.toCharArray(ch2,message2.length()+1);
	  cheks.toCharArray(chek,7);
	    
	   Mirf.send((uint8_t *)chek);
	  while(Mirf.isSending()){
	    }
	     delay(100);
	    Mirf.send((uint8_t *)ch1);
	    while(Mirf.isSending()){
	    }
	     delay(100);
	    Mirf.send((uint8_t *)ch2);
	     while(Mirf.isSending()){
	    }
	 delay(100);
	}
 

 

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Очевидно что недокомментировали код)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

qwone пишет:

         #include <SPI.h> // Мой дядя самых честных правил,

А чего не до конца?

Чем-то Вы мне другого Онегина напомнили .... :)

.......
Мы все бомбили помаленьку;
На сердце руку положа,
Нас удивишь делами Женьки,
Как голой жопою - ежа.
Онегин был пацан толковый,
По мненью братства воровского,
Шпанюк идейный, не блядво:
Умел он, в случае чего,
Изобразить умняк на роже,
Штемпам, которых до фига,
Лапшу повесить на рога, -
Но фильтровал базары все же;
И так любил загнуть матком,
Что шмары ссали кипятком.
........
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andriano пишет:

Механика такая:

...

Мне представляется здесь другой алгоритм:

1. Получить задание
2. Поискать готовое решение в сети
3. ЕСЛИ (нашёл) скачать ИНАЧЕ раскрутить кого-нибудь на форуме написать
4. Нихрена не понять
5. Раскрутить кого-нибудь построчно объяснить (Сейчас на этой фазе!)
6. Нихрена не понять
7. Пойти сдавать
8. ЕСЛИ (препод давно на всё забил) спокойно сдать ИНАЧЕ {
        a. Провалиться на первом же вопросе
        b. Заявить, что препод - козёл
        c. Намекнуть на сексуальные домогательства с его стороны
    }
9. Так нихрена и не понять

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну да:Мы все учились понемногу

Чему-нибудь и как-нибудь,

Так воспитаньем, слава богу,

У нас немудрено блеснуть.

Dona_balkanska
Dona_balkanska аватар
Offline
Зарегистрирован: 16.10.2016




#include <TinyGPS++.h> //Кому не скучно лицемерить,

#include <SoftwareSerial.h> //Различно повторять одно,
#include <SPI.h> //Стараться важно в том уверить,
#include <Mirf.h>  //В чем все уверены давно,
#include <nRF24L01.h>  //Кого не утомят угрозы,
#include <MirfHardwareSpiDriver.h>  //Моленья, клятвы, мнимый страх,
#define MAX_BUFF 32 //буфер приема-передачи //Записки на шести листах,
 
static const int RXPin = 4, TXPin = 3; //Обманы, сплетни, кольца, слезы,
TinyGPSPlus gps;  //Надзоры теток, матерей,
 
SoftwareSerial ss(RXPin, TXPin);//И дружба тяжкая мужей!
 
Спасибо всем!
 
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не за что, заходите ещё.