コード例 #1
0
    def run(self):
        info("CoAP Server binded on coap://%s:%s/" % (self.host, self.port))
        while self.running == True:
            try:
                (request, client) = self.socket.recvfrom(1500)
                requestBytes = bytearray(request)
                coapRequest = COAPRequest()
                coapRequest.parseByteArray(requestBytes)
                coapResponse = COAPResponse()
                #self.logger.debug("Received Request:\n%s" % coapRequest)
                self.processMessage(coapRequest, coapResponse)
                #self.logger.debug("Sending Response:\n%s" % coapResponse)
                responseBytes = coapResponse.getBytes()
                self.socket.sendto(responseBytes, client)
                self.logger.debug(
                    '"%s %s CoAP/%.1f" - %s (Client: %s)' %
                    (coapRequest.CODES[coapRequest.code], coapRequest.uri_path,
                     coapRequest.version,
                     coapResponse.CODES[coapResponse.code], client[0]))

            except socket.timeout as e:
                continue
            except Exception as e:
                if self.running == True:
                    exception(e)

        info("CoAP Server stopped")
コード例 #2
0
ファイル: coap.py プロジェクト: bill0/webiopi
    def run(self):
        info("CoAP Server binded on coap://%s:%s/" % (self.host, self.port))
        while self.running == True:
            try:
                (request, client) = self.socket.recvfrom(1500)
                requestBytes = bytearray(request)
                coapRequest = COAPRequest()
                coapRequest.parseByteArray(requestBytes)
                coapResponse = COAPResponse()
                # self.logger.debug("Received Request:\n%s" % coapRequest)
                self.processMessage(coapRequest, coapResponse)
                # self.logger.debug("Sending Response:\n%s" % coapResponse)
                responseBytes = coapResponse.getBytes()
                self.socket.sendto(responseBytes, client)
                self.logger.debug(
                    '"%s %s CoAP/%.1f" - %s (Client: %s)'
                    % (
                        coapRequest.CODES[coapRequest.code],
                        coapRequest.uri_path,
                        coapRequest.version,
                        coapResponse.CODES[coapResponse.code],
                        client[0],
                    )
                )

            except socket.timeout as e:
                continue
            except Exception as e:
                if self.running == True:
                    exception(e)

        info("CoAP Server stopped")
コード例 #3
0
ファイル: http.py プロジェクト: MdeJong1970/webIOPi-working
 def run(self):
     info("HTTP Server binded on http://%s:%s%s" % (self.host, self.port, self.context))
     try:
         self.serve_forever()
     except Exception as e:
         if self.running == True:
             exception(e)
     info("HTTP Server stopped")
コード例 #4
0
 def run(self):
     info("HTTP Server binded on http://%s:%s%s" % (self.host, self.port, self.context))
     try:
         self.serve_forever()
     except Exception as e:
         if self.running == True:
             exception(e)
     info("HTTP Server stopped")
コード例 #5
0
ファイル: coap.py プロジェクト: bill0/webiopi
    def processMessage(self, request, response):
        if request.type == COAPMessage.CON:
            response.type = COAPMessage.ACK
        else:
            response.type = COAPMessage.NON

        if request.token:
            response.token = request.token

        response.id = request.id
        response.uri_path = request.uri_path

        if request.code == COAPRequest.GET:
            self.handler.do_GET(request, response)
        elif request.code == COAPRequest.POST:
            self.handler.do_POST(request, response)
        elif request.code / 32 == 0:
            response.code = COAPResponse.NOT_IMPLEMENTED
        else:
            exception(Exception("Received CoAP Response : %s" % response))
コード例 #6
0
    def processMessage(self, request, response):
        if request.type == COAPMessage.CON:
            response.type = COAPMessage.ACK
        else:
            response.type = COAPMessage.NON

        if request.token:
            response.token = request.token

        response.id = request.id
        response.uri_path = request.uri_path

        if request.code == COAPRequest.GET:
            self.handler.do_GET(request, response)
        elif request.code == COAPRequest.POST:
            self.handler.do_POST(request, response)
        elif request.code / 32 == 0:
            response.code = COAPResponse.NOT_IMPLEMENTED
        else:
            exception(Exception("Received CoAP Response : %s" % response))
コード例 #7
0
def main(argv):
    port = 8000
    configfile = None
    logfile = None

    i = 1
    while i < len(argv):
        if argv[i] in ["-c", "-C", "--config-file"]:
            configfile = argv[i + 1]
            i += 1
        elif argv[i] in ["-l", "-L", "--log-file"]:
            logfile = argv[i + 1]
            i += 1
        elif argv[i] in ["-h", "-H", "--help"]:
            displayHelp()
        elif argv[i] in ["-d", "--debug"]:
            setDebug()
        else:
            try:
                port = int(argv[i])
            except ValueError:
                displayHelp()
        i += 1

    if logfile:
        logToFile(logfile)

    info("Starting XBee %s" % VERSION)

    # setup serial
    serial = Serial()
    serial.port = '/dev/ttyAMA0'
    serial.baudrate = 9600
    serial.timeout = 1
    serial.writeTimeout = 1
    serial.open()

    # disregard any pending data in xbee buffer
    serial.flushInput()

    # force to show xbee boot menu
    time.sleep(.5)
    serial.writelines("\r")
    time.sleep(.5)

    # read menu
    while serial.inWaiting() > 0:
        debug("%s" % serial.readline())

    # trigger bypass automatically
    serial.writelines("B")

    # post startup message to other XBee's and at stdout
    #serial.writelines("RPi #1 is up and running.\r\n")
    info("RPi #1 is up and running.")

    try:
        while True:
            waitToSend = True

            # read a line from XBee and convert it from b'xxx\r\n' to xxx and send to webiopi
            while serial.inWaiting() > 0:
                try:
                    line = serial.readline().decode('utf-8').strip('\n\r')
                    if line:
                        waitToSend = False
                        debug("Received: %s" % line)
                        try:
                            client = PiHttpClient("127.0.0.1")
                            macro = Macro(client, "setCarInfo")
                            macro.call(line.replace(",", "%2C"))
                        except:
                            exception("setting car info failed!")

                except KeyboardInterrupt:
                    raise
                except Exception as e:
                    exception(e)
                    time.sleep(1.)

            try:
                time.sleep(1.)

                client = PiHttpClient("127.0.0.1")
                macro = Macro(client, "getPitInfo")
                data = macro.call()
                if data:
                    debug("Sending: %s" % data)
                    serial.writelines(data + "\n")

            except KeyboardInterrupt:
                raise
            except Exception as e:
                exception(e)
                time.sleep(1.)

    except KeyboardInterrupt:
        info("*** Ctrl-C keyboard interrupt ***")
コード例 #8
0
                    exception(e)
                    time.sleep(1.)

            try:
                time.sleep(1.)

                client = PiHttpClient("127.0.0.1")
                macro = Macro(client, "getPitInfo")
                data = macro.call()
                if data:
                    debug("Sending: %s" % data)
                    serial.writelines(data + "\n")

            except KeyboardInterrupt:
                raise
            except Exception as e:
                exception(e)
                time.sleep(1.)

    except KeyboardInterrupt:
        info("*** Ctrl-C keyboard interrupt ***")


if __name__ == "__main__":
    try:
        main(sys.argv)
    except Exception as e:
        exception(e)
        stop()
        info("RPi #1 is going down")
コード例 #9
0
ファイル: xbee.py プロジェクト: HelloClarice/ClariceNet
def main(argv):
	port = 8000
	configfile = None
	logfile = None

	i = 1
	while i < len(argv):
		if argv[i] in ["-c", "-C", "--config-file"]:
			configfile = argv[i+1]
			i+=1
		elif argv[i] in ["-l", "-L", "--log-file"]:
			logfile = argv[i+1]
			i+=1
		elif argv[i] in ["-h", "-H", "--help"]:
			displayHelp()
		elif argv[i] in ["-d", "--debug"]:
			setDebug()
		else:
			try:
				port = int(argv[i])
			except ValueError:
				displayHelp()
		i+=1

	if logfile:
		logToFile(logfile)

	info("Starting XBee %s" % VERSION)

	# setup serial
	serial = Serial()
	serial.port = '/dev/ttyAMA0'
	serial.baudrate = 9600
	serial.timeout = 1
	serial.writeTimeout = 1
	serial.open()

	# disregard any pending data in xbee buffer
	serial.flushInput()

	# force to show xbee boot menu
	time.sleep(.5)
	serial.writelines("\r")
	time.sleep(.5)

	# read menu
	while serial.inWaiting() > 0:
		debug("%s" % serial.readline())

	# trigger bypass automatically
	serial.writelines("B")

	# post startup message to other XBee's and at stdout
	#serial.writelines("RPi #1 is up and running.\r\n")
	info("RPi #1 is up and running.")

	try:
		while True:
			waitToSend = True

			# read a line from XBee and convert it from b'xxx\r\n' to xxx and send to webiopi
			while serial.inWaiting() > 0:
				try:
					line = serial.readline().decode('utf-8').strip('\n\r')
					if line:
						waitToSend = False
						debug("Received: %s" % line)
						try:
							client = PiHttpClient("127.0.0.1")
							macro = Macro(client, "setCarInfo")
							macro.call(line.replace(",", "%2C"))
						except:
							exception("setting car info failed!")

				except KeyboardInterrupt:
					raise
				except Exception as e:
					exception(e)
					time.sleep(1.)

			try:
				time.sleep(1.)

				client = PiHttpClient("127.0.0.1")
				macro = Macro(client, "getPitInfo")
				data = macro.call()
				if data:
					debug("Sending: %s" % data)
					serial.writelines(data + "\n")

			except KeyboardInterrupt:
				raise
			except Exception as e:
				exception(e)
				time.sleep(1.)

	except KeyboardInterrupt:
		info("*** Ctrl-C keyboard interrupt ***")
コード例 #10
0
ファイル: xbee.py プロジェクト: HelloClarice/ClariceNet
				except Exception as e:
					exception(e)
					time.sleep(1.)

			try:
				time.sleep(1.)

				client = PiHttpClient("127.0.0.1")
				macro = Macro(client, "getPitInfo")
				data = macro.call()
				if data:
					debug("Sending: %s" % data)
					serial.writelines(data + "\n")

			except KeyboardInterrupt:
				raise
			except Exception as e:
				exception(e)
				time.sleep(1.)

	except KeyboardInterrupt:
		info("*** Ctrl-C keyboard interrupt ***")

if __name__ == "__main__":
	try:
		main(sys.argv)
	except Exception as e:
		exception(e)
		stop()
		info("RPi #1 is going down")