SFP光口通信控制电源_sfp和lcc可以通讯吗

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • PC与光电转换器 网口连接以及光电转换器与电源光纤连接
    在这里插入图片描述

经过与客服上的技术支持 咨询,把光纤线连接如下,并ping通。电源的IP地址设置成192.168.0.100,PC上的IP地址设置成192.168.0.2;并成功ping通。
图片如下:
在这里插入图片描述

  • 指示灯状态说明
    其中光电转换器的指示灯状态说明如下:
    FX代表光纤连通,而FX右边的代表网口(电口)连通,上面1000代表1000M。
    以上说明物理层 以太帧这块基本没问题。

1 UDP设置值

  • 修改Demo例程
    通过之前的Python代码,把IP地址修改对应。
    需要根据技术手册把UDP帧格式搞懂
    根据向销售电源设备的技术支持询问,拿到一段Python代码并读懂,然后根据技术手册对UDP帧格式的说明,修改对应参数。
import socket
import struct 


# -----------------------------------------------------------------------------
# Parameters:
# -----------------------------------------------------------------------------
# IP地址应该要对应修改一下,变量声明

HOST_IP = '192.168.0.2'
HOST_PORT = 28685   #端口自定义 

DEST_IP = '192.168.0.100'

#DEVICE_IP = '192.168.0.10'
#DEVICE_IP = '255.255.255.255'
DEVICE_PORT = 30721  #标准设备端口号
#RESP_TIMEOUT = 0.4

# 是不是构建UDP格式
FAST_PROTOCOL_ID = 0x7631
COMMAND = 0xFFDD    # 这值设置的是不是有问题 
NONCE = 0x111122223333AAAA

FAST_ADDR = 0xFFFF  # 地址值
SET_POINT = 6.0     #分别是MSB值 和LSB值 

DUMMY_ADDR = 0xAACB
DUMMY_SET_POINT = -4012300012348754.123456789

BROADCAST = True


# -----------------------------------------------------------------------------
# Costants:
#data = b'\x43\x41\x45\x4E\x65\x6C\x73'   #CAENels
#data = b'\x12\x34'  
# Packet Header:

# 把上面的帧打包成帧  对应UDP格式来进行打包
data = struct.pack('>H', FAST_PROTOCOL_ID) # Bin endian - unsigned short (16 bits - 2 bytes)
data += struct.pack('>H', COMMAND)         # Bin endian - unsigned short (16 bits - 2 bytes)
data += struct.pack('>Q', NONCE)           # Bin endian - unsigned long long (64 bits - 8 bytes)
# Packet data:
data += struct.pack('>Hf', DUMMY_ADDR, DUMMY_SET_POINT)   # 6 bytes
data += struct.pack('>Hf', FAST_ADDR, SET_POINT)   # Bin endian - unsigned short + float (2 bytes + 4 bytes)
data += struct.pack('>Hf', DUMMY_ADDR, DUMMY_SET_POINT)   # 6 bytes
data += struct.pack('>Hf', DUMMY_ADDR, DUMMY_SET_POINT)   # 6 bytes
data += struct.pack('>Hf', DUMMY_ADDR, DUMMY_SET_POINT)   # 6 bytes
data += struct.pack('>Hf', FAST_ADDR, SET_POINT)   # Bin endian - unsigned short + float (2 bytes + 4 bytes)
data += struct.pack('>Hf', DUMMY_ADDR, DUMMY_SET_POINT)   # 6 bytes

                     
                            
# Broadcast socket configuration:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)    
s.settimeout(1.0)
s.bind((HOST_IP, HOST_PORT))


s_recv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  
s_recv.settimeout(1.0)
s_recv.bind(('', DEVICE_PORT))

# Send:
if (BROADCAST):
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1) 
    s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 
    s.sendto(data, ('<broadcast>', DEVICE_PORT))
else:
    s.sendto(data, (DEST_IP, DEVICE_PORT))

m = s_recv.recv(1024)
print("Recv:", m)

# Close connections:
s.close()
s_recv.close()


1.1 UDP帧格式

UDP帧格式由:UDP header + UDP data 组成。
1.UDP header
UDP 头由 4 个字段组成,每个字段为 16 位。
UDP header = source port + destination port + length +checksum.

1.2 UDP data

The device Fast Address (ID) : 可以设置也可以读取

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值