summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2010-10-02 00:00:32 +0000
committerChristian Pointner <equinox@spreadspace.org>2010-10-02 00:00:32 +0000
commit621c7f4acf2ce36db5dcae2de1d013f7de2f2cf8 (patch)
treed51cc5299a535929923fb45edd88ac5731b7e66e /tools
parentadded initial svn dirs (diff)
inital checkin (base daemon should be running)
git-svn-id: https://svn.spreadspace.org/gcsd/trunk@2 ac14a137-c7f1-4531-abe0-07747231d213
Diffstat (limited to 'tools')
-rw-r--r--tools/bin2c.lua59
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/bin2c.lua b/tools/bin2c.lua
new file mode 100644
index 0000000..e70f4ff
--- /dev/null
+++ b/tools/bin2c.lua
@@ -0,0 +1,59 @@
+--
+-- gcsd
+--
+-- gcsd the generic command sequencer daemon can be used to serialize
+-- commands sent over various paralell communication channels to a
+-- single command output. It can be seen as a multiplexer for any
+-- kind of communication between a single resource and various clients
+-- which want to submit commands to it or query information from it.
+-- gcsd is written in C and Lua. The goal is to provide an easy to
+-- understand high level API based on Lua which can be used to
+-- implement the business logic of the so formed multiplexer daemon.
+--
+--
+-- Copyright (C) 2009-2010 Markus Grueneis <gimpf@spreadspace.org>
+-- Christian Pointner <equinox@spreadspace.org>
+--
+-- This file is part of gcsd.
+--
+-- gcsd is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- any later version.
+--
+-- gcsd is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with gcsd. If not, see <http://www.gnu.org/licenses/>.
+--
+
+if not arg or not arg[1] or not arg[2] then
+ io.stderr:write("Usage: lua bin2c.lua filename c_var_name\n")
+ return
+end
+
+local filename, c_var_name = ...
+
+local content = assert(io.open(filename,"rb")):read"*a"
+
+local dump do
+ local numtab={}; for i=0,255 do numtab[string.char(i)]=("%3d,"):format(i) end
+ function dump(str)
+ return (str:gsub(".", numtab):gsub(("."):rep(80), "%0\n"))
+ end
+end
+
+io.write([=[
+/* code automatically generated by bin2c -- DO NOT EDIT */
+
+#include "datatypes.h"
+
+const uint8_t ]=] , c_var_name, [=[[]={
+]=], dump(content), [=[
+
+};
+const uint32_t ]=] , c_var_name, [=[_len = sizeof(]=] , c_var_name, [=[);
+]=])