Столкнулся с одним кодом.... предлагается в 5 шагов поднять обмен по LoRa чуть-ли не с нулевым порогом вхождения в программирование... есть проект LowCostLoRaGw.
Конечно всё шоколадно. На проводочках ардуино+рфм95 и распбери+рфм95, по 5 шагов и вот тебе готовая система сбора данных. На базе Sx1272.cpp даже есть библа для
Решил велосипед не изобретать и портировать этот код себе, благо дело сырци есть. Компилятор дал тонну ворнингов. Я уже молчу за такой код
Код
bool SerialPi::find(const char *target){
findUntil(target,NULL);
}
я уже молча испоравляю ворнинги где int сравнивается с unsigned int. Но не удержаляся после подобнойго кода (благо дело ворнинг показал)findUntil(target,NULL);
}
Код
/* Prints data to the serial port as human-readable ASCII text followed
* by a carriage retrun character '\r' and a newline character '\n' */
void SerialPi::println(float f, int precission){
const char *str1="%.";
char * str2;
char * str3;
char * message;
sprintf(str2,"%df",precission); //ошибка
asprintf(&str3,"%s%s",str1,str2); //утечка памяти
sprintf(message,str3,f); //ошибка
const char *newline="\r\n";
char * msg = NULL;
asprintf(&msg,"%s%s",message,newline); //утечка памяти
unistd::write(sd,msg,strlen(msg));
}
* by a carriage retrun character '\r' and a newline character '\n' */
void SerialPi::println(float f, int precission){
const char *str1="%.";
char * str2;
char * str3;
char * message;
sprintf(str2,"%df",precission); //ошибка
asprintf(&str3,"%s%s",str1,str2); //утечка памяти
sprintf(message,str3,f); //ошибка
const char *newline="\r\n";
char * msg = NULL;
asprintf(&msg,"%s%s",message,newline); //утечка памяти
unistd::write(sd,msg,strlen(msg));
}
Всё это великолепие есть тут
автор проекта какой-то индус CongDuc Pham
автор этого кода, судя по коментам в файле arduPi_pi2.cpp некая Libelium Comunicaciones Distribuidas
на сайте Libelium чего только нет. И для автомобилей что-то делают, и для сетей, и для МЕДИЦИНЫ!!! И такой говнокод пишут. УЖАС!!!
Весь arduPi_pi2.cpp исчерпан вызовами asprintf() и ни разу нет вызова free(). Конечно без free такой код будет работать, за каждый вызов будет утекать несколько байт памяти. Но сколько времени непрерывно проработает такой шлюз? неделю? Месяц? Год? Не удевляюсь, почему винда, после недели непрерывной работы начинает тормозить и съедает 8 Гб озу с закрытыми приложениями. А потом начинаются срачи на темы, типа "Почему до сих пор все сидят на древних языках вроде С и С++", и что с++ говноязык, а жава тру!!!