コード例 #1
0
def index():
    dcp.send_discover(s, src)
    resp = [
        dcp.DCPDeviceDescription(mac, blocks)
        for mac, blocks in dcp.read_response(s, src).items()
    ]
    return render_template("discover.html", resp=resp)
コード例 #2
0
ファイル: rpc.py プロジェクト: Jonekee/profinet
def get_station_info(s, src, name):
    dcp.send_request(s, src, PNDCPBlock.NAME_OF_STATION, bytes(name, 'utf-8'))
    resp = list(dcp.read_response(s, src, once=True).items())[0]
    return dcp.DCPDeviceDescription(*resp)
コード例 #3
0
ファイル: main.py プロジェクト: Jonekee/profinet
parser.add_argument("action", choices=("discover", "get-param", "set-param", "read", "read-inm0-filter", "read-inm0", "read-inm1", "write-inm1"))
parser.add_argument("target", nargs='?', help="MAC address of the device")
parser.add_argument("param",  nargs='?', help="parameter to read/write")
parser.add_argument("value",  nargs='?', help="value to write")
parser.add_argument("additional1",  nargs='?', help="additional parameters")
parser.add_argument("additional2",  nargs='?', help="additional parameters")

args = parser.parse_args()


s = ethernet_socket(args.i, 3)
src = get_mac(args.i)

if args.action == "discover":
    dcp.send_discover(s, src)
    dcp.read_response(s, src, debug=True)
elif args.action == "get-param":
    dcp.get_param(s, src, args.target, args.param)
elif args.action == "set-param":
    dcp.set_param(s, src, args.target, args.param, args.value)
elif args.action.startswith("read") or args.action.startswith("write"):
    print("Getting station info ...")
    info = rpc.get_station_info(s, src, args.target)
    con = rpc.RPCCon(info)

    print("Connecting to device ...")
    con.connect(src)
    
    if args.action == "read":
        print(con.read(api=int(args.param), slot=int(args.value), subslot=int(args.additional1), idx=int(args.additional2, 16)).payload)
        
コード例 #4
0
ファイル: rpc.py プロジェクト: yurikaz/profinet
def get_station_info(s, src, name):
    dcp.send_request(s, src, PNDCPBlock.NAME_OF_STATION, bytes(name, 'utf-8'))
    resp = list(dcp.read_response(s, src, once=True).items())[0]
    return dcp.DCPDeviceDescription(*resp)
コード例 #5
0
ファイル: server.py プロジェクト: Jonekee/profinet
def index():
    dcp.send_discover(s, src)
    resp = [dcp.DCPDeviceDescription(mac, blocks) for mac, blocks in dcp.read_response(s, src).items()]
    return render_template("discover.html", resp=resp)
コード例 #6
0
                             "read-inm0-filter", "read-inm0", "read-inm1",
                             "write-inm1"))
parser.add_argument("target", nargs='?', help="MAC address of the device")
parser.add_argument("param", nargs='?', help="parameter to read/write")
parser.add_argument("value", nargs='?', help="value to write")
parser.add_argument("additional1", nargs='?', help="additional parameters")
parser.add_argument("additional2", nargs='?', help="additional parameters")

args = parser.parse_args()

s = ethernet_socket(args.i, 3)
src = get_mac(args.i)

if args.action == "discover":
    dcp.send_discover(s, src)
    dcp.read_response(s, src, debug=True)
elif args.action == "get-param":
    dcp.get_param(s, src, args.target, args.param)
elif args.action == "set-param":
    dcp.set_param(s, src, args.target, args.param, args.value)
elif args.action.startswith("read") or args.action.startswith("write"):
    print("Getting station info ...")
    info = rpc.get_station_info(s, src, args.target)
    con = rpc.RPCCon(info)

    print("Connecting to device ...")
    con.connect(src)

    if args.action == "read":
        print(
            con.read(api=int(args.param),