Skip to content

Instantly share code, notes, and snippets.

View btolfa's full-sized avatar

btolfa btolfa

  • Madrid, Spain
View GitHub Profile
@btolfa
btolfa / fix-poky.patch
Created April 14, 2016 08:32
Fixes for Openembedded/Yocto Poky
From 3308fe8a2f75edf69c19f06c2d9e8729da97d875 Mon Sep 17 00:00:00 2001
From: Tengiz Sharafiev <btolfa@gmail.com>
Date: Tue, 19 Jan 2016 18:13:22 +0300
Subject: [PATCH 1/6] dbus: upgrade to 1.10.2
This upgrade should fix qemu build failure on Ubuntu 15.10
caused by system pulseaudio requirement for newer libdbus.
qemu-native build with old dbus breaks on configure step
with a lot of errors similar to this:
@btolfa
btolfa / 0001-Add-dts-binding-for-sun4i_can.patch
Created February 25, 2016 14:41
Patch: Add canbus binding in dts for A10-OlinuXino-LIME
From 102e17cff416395aa70d4f423e72a354cd778308 Mon Sep 17 00:00:00 2001
From: Tengiz Sharafiev <btolfa@gmail.com>
Date: Thu, 25 Feb 2016 17:36:38 +0300
Subject: [PATCH] Add dts binding for sun4i_can
Based on https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/net/can/sun4i_can.txt
---
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 6 ++++++
arch/arm/boot/dts/sun4i-a10.dtsi | 15 +++++++++++++++
2 files changed, 21 insertions(+)
@btolfa
btolfa / main.cpp
Last active November 18, 2015 11:47
auto_ptr в shared_ptr
int _tmain(int argc, _TCHAR* argv[])
{
std::shared_ptr<my_link> li;
try {
auto_ptr<my_link> ll = my_link_ ("link.xml");
li = std::shared_ptr<my_link>(ll.release());
}
return 0;
}
@btolfa
btolfa / gist:aa37a282d05b2b57bf71
Last active August 29, 2015 14:25
ExerciseCanFrameParser.cpp
#include <boost/range/adaptor/indirected.hpp>
#include <boost/range/adaptor/filtered.hpp>
using namespace boost::adaptors;
boost::for_each(v_parsers | indirected |
filtered([&frame](const auto & parser){return parser(frame.can_id);}),
[&frame](const auto & parser){parser(frame);});
#include <boost/range/adaptor/transformed.hpp>
#include <boost/range/adaptor/filtered.hpp>
#include <boost/range/algorithm/for_each.hpp>
using boost::adaptors
std::map<std::string, sev::severity_level> severity_per_channel;
boost::insert(severity_per_channel, severity_per_channel.end(),
p_ptree->get_child("logging") | transformed([](const auto & kv){
return std::make_pair<std::string, sev::severity_level>(
// Если это какое-то ещё сообщение
#include <boost/range/adaptor/transformed.hpp>
#include <boost/range/adaptor/filtered.hpp>
#include <boost/range/algorithm/for_each.hpp>
using boost::adaptors
boost::for_each ( vp_entries_ | transformed([&root](const auto & parser){return parser->parse(root);})
| filtered([](const auto & actor){return bool(actor);}), [](const auto & actor){actor();})
void TcpJson::CallChannel()
{
// Канал с конфигурационной строкой должен быть подцеплен к 0й ножке TcpJson.
// Формат конфигурационной строки (JSON. Пробелы и переводы строки не имеют значения):
// {
// "id": "RP3-00-{123}", // GUID комплекта оборудования
// "addr": "127.0.0.1", // Адрес сервера
// "port": 22000, // Порт сервера
// "input": // Список имен каналов, из которых берутся данные
// {
std::string TcpJson::GetConfigurationString()
{
if (auto conf_child = GetChild(0)) {
auto conf_str = static_cast<Aco_StringChannel*>(conf_child)->GetString();
if (conf_str) {
return std::string(conf_str);
}
}
return std::string();
typedef struct ObjectTag {
// Данные и методы
} Object;
int InitObject(Object* io_pObject);
int UseObject(Object* io_pObject);
int ClearObject(Object* io_pObject);
void ObjectsInC() {
Object* pObject;
<pupillary_light_reflex delayed="0|1">
<left enabled="1" diameter="2" />
<right enabled="1" diameter="2" />
</pupillary_light_reflex>