使用 VS 远程调试 C++

远程调试的作用就是可以在开发机(即本地机器)上调试在目标机器(即远程机器)运行的程序。

这里本地机器和开发机器的操作系统都是 Windows 。

目标机器环境搭建

  1. 安装远程调试工具

    下载 Visual Studio 2019 远程调试工具:https://visualstudio.microsoft.com/zh-hans/downloads/#remote-tools-for-visual-studio-2019 下载完后双击安装。

防御式编程的经验

You Can’t Write Perfect Software

防御式编程对所有可能出现的错误进行防卫性的处理,当错误出现时,该崩溃的让程序崩溃,该记录日志的记录日志。这样才能在程序真的出现错误时更加快速的解决错误。

使用 glibmm 实现 dbus 服务端和客户端

简介

dbus 介绍: 维基百科

glibmm: glibmm 是 glib 库的 C++ 封装。它的一个子项目 giomm 实现了 dbus 协议。通过 giomm 我们可以实现 dbus 服务,也可以实现一个 dbus 客户端。

glibmm dbus 服务端

Gio::DBus::own_name

实现服务端的一个入口 API 是: Gio::DBus::own_name ,它的原型如下:

使用 C++ 创建异步 Node.js 扩展

简介

有时候 C++ 插件会执行非常耗时的任务,为了避免阻塞 Node.js 的事件循环,我们应该异步的运行耗时的任务。

对于 C++ 写的 Node.js 插件,有两种方式完成耗时的异步任务:

  1. 依赖 Node.js 的异步能力,Node.js 会起多个线程,其中一个主线程运行事件循环,其它线程为工作线程,来执行耗时任务。
  2. 在 C++ 里自己起一个线程运行耗时任务。

一般的异步任务可以用第一种方式完成,但是 Node.js 起的工作线程有限,且还需要运行其它任务,如果需要开更多的线程可以使用第二种方式。

使用 python 控制米家智能设备

协议

小米智能设备之间的通信协议早已有大佬总结出来了。详情见: https://github.com/OpenMiHome/mihome-binary-protocol

也有大佬根据协议写了一个 Python 库来控制米家智能设备,python-miio

对于每一台设备,在配对连接后,都会有一个 token, miio 库需要这个 token 和设备的 ip 地址来控制设备,所以我们需要做的就是拿到我们需要控制的智能设备的 token 和 ip。