Skip to content

Instantly share code, notes, and snippets.

View mhaberler's full-sized avatar

Michael Haberler mhaberler

View GitHub Profile
@mhaberler
mhaberler / zreadline.c
Created March 13, 2014 21:35
integrate libreadline into a czmq event loop
// example for integrating readline and
// synchronous signal delivery with czmq/zloop
// Michael Haberler 3/2014
// gcc -g zreadline.o `pkg-config --cflags --libs libczmq` -lreadline -o zreadline
#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>
#include <stdlib.h>
#include <unistd.h>
@mhaberler
mhaberler / mksh.py
Last active August 29, 2015 14:15
example linuxcncrsh - style command interpreter using the Python cmd2 module
# you might have to:
# sudo easy_install cmd2 readline
# or the equivalent debian incantations, whatever they are
from cmd2 import Cmd
import linuxcnc
class MachinekitApp(Cmd):
def __init__(self):
Cmd.__init__(self)
@mhaberler
mhaberler / lutn-demo.hal
Last active August 29, 2015 14:16
instantiable HAL component - finalized API
newsig in0 bit
newsig in1 bit
loadrt lutn
newinst lutn or2.0 inputs=2 function=0xe
newinst lutn and2.0 inputs=2 function=0x8
net in0 and2.0.in0 or2.0.in0
net in1 and2.0.in1 or2.0.in1
@mhaberler
mhaberler / README.vcan
Last active August 29, 2015 14:20
setting up vcan (virtual can interface - loopback) in wheezy
# in /etc/modules add
vcan
so the vcan module is loaded at boot
# in /etc/rc.local, add
ip link add dev vcan0 type vcan
ip link set up vcan0
@mhaberler
mhaberler / 90-slcan.rules
Created May 3, 2015 13:29
making USBtin work with wheezy boot-time
# add this file to /etc/udev/rules.d:
# 04d8:000a USBtin
KERNEL=="ttyACM*", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="000a",SYMLINK+="USBtin%n" ,RUN+="/usr/local/bin/slcan.sh /dev/%k can%n"
@mhaberler
mhaberler / Makefile
Created July 30, 2015 13:11
see what gcc and c++ generate for atomic builtins (NOT std::atomic)
all: atomic-c++.s atomic-c.s atomic-c++ atomic-c
clean:
rm -f atomic-c++.s atomic-c.s atomic-c++ atomic-c
atomic-c++.s: atomic.c
gcc -x c++ -std=c++11 -Wa,-adhln -g $^ > $@
atomic-c++: atomic.c
gcc -x c++ -std=c++11 -g $^ -o $@
@mhaberler
mhaberler / zsigfd.c
Last active January 3, 2016 06:59
example for synchronous signal processing with czmq/zloop using signalfd(2)
// example for synchronous signal processing with czmq/zloop using signalfd(2)
// Michael Haberler 1/2014
#include <czmq.h>
#include <sys/signalfd.h>
int signo;
static int s_handle_signal(zloop_t *loop, zmq_pollitem_t *poller, void *arg)
{
@mhaberler
mhaberler / blinkenleds.hal
Last active April 24, 2016 06:17
Blinkenleds with hm2_soc driver
loadrt hostmot2
loadrt hm2_soc config="firmware=socfpga/soc_system.rbf num_encoders=2 num_pwmgens=2 num_stepgens=2"
newthread servo-thread 1000000 fp
newthread slow 1000000000 fp # 1sec
# task1: blink the leds CR01 and CR02
newinst not osci
newinst not inverter
@mhaberler
mhaberler / README.md
Last active June 27, 2016 19:27
running jekyll-asciidoctor with LiveReload on change

The machinekit.io website is formatted with the docker-jekyll-asciidoctor docker image.

to run this locally "at home":

  • install docker - see https://docs.docker.com/engine/installation/linux/debian/
  • pull the image from dockerhub: docker pull haberlerm/docker-jekyll-asciidoctor
  • review and run the serve.sh script in the toplevel directory of your website
  • review the values in config_preview.yml which were generated by the first run
  • run serve.sh again, let it run to completion for the initial format of the whole site which can take 10-15mins
  • stop serve.sh with ^C and run it again, it will start with --incremental --skip-initial-build for quick startup since the _site directory already exists
@mhaberler
mhaberler / ros-bb-jessie.sh
Created January 5, 2016 20:52
installing ROS indigo ROS-comm on beaglebone jessie
# derived from http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Indigo%20on%20Raspberry%20Pi
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu jessie main" > /etc/apt/sources.list.d/ros-latest.list'
wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade