#!/usr/bin/env python

"""Convert from a spreadsheat .txt output to a config file

Commented lines with # are ignored.
Columns are asummed to be:
Col 1: ACNET device name
Col 2: <TCLK Trigger number>,<delay in msec>  for callback set 1 or None
Col 3: <TCLK Trigger number>,<delay in msec>  for callback set 2 or None
The rest: A description of the devices.

usage: device-ss-to-cfg.py input.txt output.cfg
"""

import sys
from ConfigParser import SafeConfigParser

input=sys.argv[1]
output=sys.argv[2]

devices = {}                            # "trigger-name"->[device,list,]
triggers = {}                           # "trigger-name"->(tclk-event,delay)

def add_dev(d,k,v):
    if k == "None": return
    if not d.get(k): d[k] = []
    d[k].append(v)
    

fp = open(input)
for line in fp.readlines():
    line = line.strip()
    if not len(line): continue
    if line[0:2] == "##":
        chunks = line.split()
        triggers[chunks[1]] = (chunks[2],chunks[3])
        continue
    if line[0] == "#": continue

    chunks = line.split()
    add_dev(devices,chunks[1],chunks[0])
    add_dev(devices,chunks[2],chunks[0])
fp.close()

scp = SafeConfigParser()
for name,devlist in devices.iteritems():
    scp.add_section(name)
    scp.set(name,"event","0x%s"%triggers[name][0])
    scp.set(name,"delay",triggers[name][1])
    scp.set(name,"devices",str(devlist))

    print "Section %s has %d devices"%(name,len(devlist))
fp = open(output,"w")
scp.write(fp)
fp.close()


          




