2017-08-01から1ヶ月間の記事一覧

memory leak check by sanitizer

#include <iostream>using namespace std; class X{public: X(); ~X();}; X::X(){ cout << "X()" << endl;}X::~X(){ cout << "~X()" << endl;} int main(){ X* pX = new X(); //pX->~X(); delete pX; return 0;} kzono@rachael:$ g++ -Wall callDestructor.cpp -fsanit</iostream>…

2017年08月27日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

std::chrono::system_clock::time_point と time_t

時刻を秒単位で記録できればよいのであれば、time_t で十分見たい。 system_clock - cpprefjp C++日本語リファレンス 今回は通信用または記録用に時刻をシリアライズしたいわけなので、結局は time_t に変換することになりそう。 time_t は long に typedef …

MessagePack と日時(タイムスタンプ)

各種のセンサーから取得した値をサーバへ送る場合、シリアライズする必要がある。MessagePack が良さげ。圧縮率、対応言語の多さ、IDL不要など。 google さんの protocol buffers はIDLが必要。 で。センサーの計測データなので、計測日時が必要。C**の場合…

raspberrypi, mbed, esp32

デバイスの制御はラズパイよりmbed, esp32 のほうが適している。タイマーやADコンバータなどのペリフェラルが違う。 ラズパイに 向いているのは、タッチパネル、動画のストリーミングなど。 、

シリアライズライブラリ

ソケット通信でデータを送受信するとき、ネットワークバイトオーダや構造体のパディングなどを考慮して、通信用バイト列に変換する必要がある。 自分でゴリゴリ作るより、便利そうなライブラリを探し、使うことにする。 Google Protocol Buffers MessagePack…

【ソケット通信】ネットワークバイトオーダと recv の戻り値

C言語のソケット通信プログラムの続き。固定長文字列の送受信まで昨日成功していたので、shot int(16bit) や int(32bit) ,long(64bit) など、ネットワークバイトオーダが問題となるデータを送受信するサンプルを今日動かした。 が。簡単だと思ってやってみる…

【ソケット通信】CとC++ サンプルコードの修正

動いたサンプルをベースに、言語をまたいでクライアント/サーバのソケット通信をするため、通信仕様を揃えるべく、修正。 昨日、C言語の修正がうまく行かなかったのは、送受信のときにデータ長を固定で送受信しなかったこと。可変長でテストしてしまった。 …

C言語でソケット通信

漸くC言語でクライアント・サーバなソケット通信プログラムのサンプルが動いた。 ネット上のサンプルと、微妙にヘッダファイルの名前やパスが違っていて手こずった。 これで、C/C++/python の3言語で、それぞれクライアントとサーバのサンプルが動いたこと…

2017年08月13日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

nc(netcat) on ubuntu

サーバ・クライアント間のソケット通信サンプルプログラムの動作確認などに便利なコマンドを発見。 nc(netcat)コマンドで覚えておきたい使い方8個 | 俺的備忘録 〜なんかいろいろ〜 ネットワーク診断の現場から(netcat編・その1) | NTTデータ先端技術株式…

すこし汎用的な Makefile

比較的簡単なプロジェクト用に Makefile のテンプレートを作った。 ソースファイルとオブジェクトファイルのディレクトリを分けたところが、少し工夫したところ。 とはいえ、昔は階層化 Make まで頑張って対応していたので、あくまで簡易版。 # DirectoriesS…

【ESP32】Boost.asio を使ったソケット通信

ubuntu への boost のインストール boost のパッケージがリポジトリにあるかどうか探した。 $ sudo apt-cache search boost たくさん見つかった。おそらく最新版ではなく結構古いバージョンだと思われるが、標準でサポートされているのが安心。自分でビルド…

【ESP32】ソケット通信のお勉強

ESP32の特長は、WiFiとBluetooth を安価(チップは800円、ボードで1600円)で使えること。しかも、ROM/RAMはArduino(AVRMega386)より多いこと。 マイコンとしてのペリフェラルも充実している。ペリフェラルのサンプルコードも公開されているので後で…

【ESP32】HelloWorld まで成功!

Windows10上の MinGW+MSYS や Cygwin だと、微妙にエラーが出てしまった。 VirtualBox 上の Ubuntu で環境構築を試みたところ、サンプルプロジェクトのビルドまではできるのだが、USBケーブルによるダウンロードができなかった。USBシリアル変換チップを使い…

2017年08月06日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

【ESP32】arduino IDE シリアル通信できた

Arduino のシリアル通信のスケッチがそのまま動いた。(^^) esp32用ライブラリがシリアル通信をサポートしているということ。 GPIO:LEDとスイッチ ADC:可変抵抗器(ボリューム)、各種センサ(加速度) Timer(PWM):LED調光、スピーカ、DCモータ、サーボモ…

2017年08月05日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

ESP32DevkitC を始めるよ

しばらく前に買って放置していたESPDevkitC をいよいよ触り始めることにする。

2017年08月01日のツイート

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…