On 07:37 am, albert.bra...@weiermayer.com wrote: >On Sun, Jun 12, 2011 at 01:22:35PM -0000, exar...@twistedmatrix.com >wrote: >>`twisted.internet.endpoints.serverFromString` is one way you might get >>this endpoint (in particular, I would emphasize that serverFromString >>is >>really only meant to construct an endpoint if you *have* to start with >>a >>string - as you do when you are reading a configuration file). > >This works also quite well when you have different kinds of connection >in the testing and production environment. We read data from a GPS >device. For testing purposes, we want to feed the NMEA telegrams into >the server using a TCP connection, but the device is connected to the >server on a serial port.
This is cool, I'm glad endpoints are working out for you. :) >We've defined a constant GPS_PORT as "SERIAL:/dev/ttyS2:baudrate=4800" >for the production environment and "tcp:1049" for the test environment To be clear, though, it sounds like you're defining GPS_PORT in a .py file, and that's more or less what I was speaking against. :) Instead, I would define GPS_PORT as either SerialEndpoint(reactor, "/dev/ttyS2", baudrate=4800) or TCP4ServerEndpoint(reactor, 1049). The rest of your code can still be indifferent to which of these is in play (and you can have a service for either of these using StreamServerEndpointService). If you misspell something or leave off a required argument, though, you're more likely to get an exception that points more directly at the problem. Put another way, I suggest writing this: if debug_mode(): gps_port = TCP4ServerEndpoint(reactor, 1049) else: gps_port = SerialEndpoint(reactor, "/dev/ttyS2", baudrate=4800) ... gps_service = StreamServerEndpointService(gps_port, gps_factory) And save the "tcp:1049"-style strings for your .ini files where you cannot write it that way. Jean-Paul _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python