Разработка библиотеки

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Здравствуйте.

Хочу вынести функции обработки команд оn модуля SIM800 в отдельную библиотеку

#include <SoftwareSerial.h>
#include <Sim800L.h>
SoftwareSerial SIM800(9,10);// RX, TX


void setup() {
  SIM800.begin(19200);
  Serial.begin(19200);
  Serial.println("Zagruzka");
}
void loop() {

  if(SIM800.available())  Sim800L Otvet(SIM800.readString());

}






 

/*
  Sim800L.h - Заголовочный файл
*/

#ifndef _Sim800L_H_
#define _Sim800L_H_




#include <Arduino.h>
class Sim800L
{
  public:
	Sim800L(String Otvet);
};
 
#endif

 

/*
  Sim800L.cpp - Файл реализации
*/
#include "Sim800L.h"


Sim800L::Sim800L(String Otvet)
{
  Otvet.trim();
  Serial.println("Otvet: "+Otvet);
}

 

Верна ли логика?

rkit
Offline
Зарегистрирован: 23.11.2016

Нет. Правильная логика - взять готовую библиотеку, а свое время потратить продуктивно.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Какую готовую? У меня свои функции в библиотеке будут.

Меня интересует логика работы библиотеки, разработка библиотеки

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Наверно должно быть так:
SoftwareSerial SimPort(9, 10); // RX, TX
SIM800 mySim(SimPort);

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Примитивненько, но работает
http://arduino.ru/forum/apparatnye-voprosy/vse-o-sim800l-i-vse-chto-s-ni...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andycat пишет:
Примитивненько, но работает http://arduino.ru/forum/apparatnye-voprosy/vse-o-sim800l-i-vse-chto-s-nim-svyazano?page=2#comment-494752

а я по моему по твоей подсказке в допиленный SomeSerial CustomSoftwareSerial обернул, надо было обязательно выставить 8N2 для порта, работает как швейцарские часы, даже на одно прерывание с портом энкодер повесил для экспериментов

ЗЫ Иринка, иди мужу рогалики пеки, основа библиотеки уже есть, даже больше, на сегодня план выполнен )))

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Спасибо, Буду разбираться.

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

Irinka пишет:

Это не к логике, но всё-таки, вместо

Sim800L(String Otvet);

пишите

Sim800L(String & Otvet);

Намного лучше в данном случае.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Irinka пишет:

Спасибо, Буду разбираться.

а даташитом каким на модуль пользуетесь, из подвернувшихся не увидел ничего по работе с компортом, а там он физически полный