我使用Raspberry Pi和Ubuntu创建了一个客户端服务器模型。 RPi是客户端,Ubuntu是服务器。正在运行的服务器,Rpi向服务器发送请求,Ubuntu服务器响应Rpi(这是一个确认)。这是使用Python中的套接字编程完成的。
现在已连接Rpi和Ubuntu,我想生成此连接的RSSI值。即客户端(Rpi)向Ubuntu服务器发送消息,一旦Ubuntu服务器从客户端收到消息,我想在ubuntu服务器和Rpi中读取信号强度(rssi)。
` #!/bin/bash
import socket
import os
def Main():
host = '192.168.2.213'
port = 5001
server = ('192.168.2.1', 5000)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host,port))
message = raw_input("-> ")
for x in range(1,11):
cmd = "iwconfig wlan1 station dump |grep -i signal | awk -F '{print $4}' | awk -F'=' {print $1}"
while message != 'q':
s.sendto(message, server)
data, addr = s.recvfrom(1024)
print 'Received from Alice :' + str(data)
message = raw_input("-> ")
for x in range(1,11):
cmd = "iwconfig wlan1 station dump |grep -i signal | awk -F '{print $4}' | awk -F'=' {print $1}"
s.close()
if __name__ == '__main__':
Main()
#!/usr/bin/python
import socket
import os
def Main():
host = '192.168.2.1'
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
print "ALICE Started."
while True:
data, addr = s.recvfrom(1024)
print "address of bob : " + str(addr)
print "message from bob : " + str(data)
data = str(data).upper()
print "sending : " + str(data)
for x in range (1,11):
cmd = "iw wlan1 station dump | grep -i signal | /usr/bin/awk '{print $2}' | /usr/bin/cut -d'=' -f2"
dbm = int( os.popen( cmd ).read() )
print " recieved RSSI: " + str(addr)
s.sendto(data, addr)
s.close()
if __name__ == '__main__':
Main()
要生成RSSI值,我尝试使用iwconfig(python)查看无线设备并将信号转储到cmd变量中。在运行代码时,我没有在CLient或Server上收到任何运行时错误。
如果我朝着正确的方向获取RSSI值,任何人都可以指导我。
感谢。