Exemplo n.º 1
0
def main(mode):
    comm = iinic.USBComm() if Config.ON_DEVICE else iinic.NetComm()
    nic = iinic.NIC(comm)
    frameLayer = FrameLayer(nic)
    myId = frameLayer.getMyId()
    print >> sys.stderr, 'NIC initialized. My id is', frameLayer.getMyId()
    dispatcher = Dispatcher(frameLayer)
    
    if mode == 'd':
        sample = SampleProto()
        dispatcher.registerProto(sample, 'sample')
        
        pp = PingPongProto()
        dispatcher.registerProto(pp, 'ping-pong')
        
        try:
            dispatcher.registerProto(sample, 'sample')
        except:
            pass # yes, we expected you, Mr. Exception
        
        dispatcher.scheduleCallback(sample.sampleCallback, time.time()+1)
        dispatcher.scheduleCallback(sampleCallback, time.time()+2)
        dispatcher.scheduleRepeatingCallback(sampleCallback, time.time()+3, 10)
        dispatcher.loop()
    
    if mode == 'r':
        monitor = MonitorProto()
        dispatcher.registerProto(monitor, 'monitor')
        dispatcher.loop()

    if mode == 's':
        frameLayer.sendFrame('s', myId, 0, 'blah')
        approx = frameLayer.nic.get_approx_timing() # TODO: expose this method
        frameLayer.sendFrame('x', myId, 0, 'blah blah', approx + 2000000)