This commit is contained in:
tankaitao 2025-08-25 17:35:39 +08:00
parent 49dd1c4248
commit bd79b8fbd1
2 changed files with 39 additions and 36 deletions

View File

@ -110,8 +110,8 @@ class BioHeadClient:
if not self.stream_active: if not self.stream_active:
# 创建一个请求迭代器生成器 # 创建一个请求迭代器生成器
self.request_queue = [] self.request_queue = []
self.response_iterator = self.stub.StreamExpression(self._stream_request_generator())
self.stream_active = True self.stream_active = True
self.response_iterator = self.stub.StreamExpression(self._stream_request_generator())
return CMVRErrorCode.CMVR_SUCCESS return CMVRErrorCode.CMVR_SUCCESS
except grpc.RpcError as e: except grpc.RpcError as e:
print(f"开始流式会话失败: {e}") print(f"开始流式会话失败: {e}")
@ -129,6 +129,7 @@ class BioHeadClient:
else: else:
# 如果没有请求,等待一小段时间 # 如果没有请求,等待一小段时间
time.sleep(0.01) time.sleep(0.01)
time.sleep(0.1)
def stream_expression(self, expression, is_eof=False): def stream_expression(self, expression, is_eof=False):
"""流式控制表情""" """流式控制表情"""

View File

@ -20,7 +20,7 @@ def test_biohead():
print("=== 测试仿生头功能 ===") print("=== 测试仿生头功能 ===")
# 初始化客户端 # 初始化客户端
client = CMVRGrpcClient("192.168.1.6:50051") client = CMVRGrpcClient("192.168.1.222:50051")
if not client.is_connected(): if not client.is_connected():
print("连接服务器失败") print("连接服务器失败")
return return
@ -30,37 +30,39 @@ def test_biohead():
# 创建表情 # 创建表情
expression = FacialExpressionState() expression = FacialExpressionState()
# 设置眉毛,使用随机数并打印
expression.left_eyebrow_outside_y = random.uniform(0, 1) expression.left_eyebrow_outside_y = random.uniform(0, 1)
expression.left_eyebrow_inside_y = random.uniform(0, 1) expression.jaw_x = 0.5
expression.right_eyebrow_outside_y = random.uniform(0, 1) expression.jaw_y = 0.5
expression.right_eyebrow_inside_y = random.uniform(0, 1) # # 设置眉毛,使用随机数并打印
print(f"眉毛设置: 左外 {expression.left_eyebrow_outside_y}, 左内 {expression.left_eyebrow_inside_y}, 右外 {expression.right_eyebrow_outside_y}, 右内 {expression.right_eyebrow_inside_y}") # expression.left_eyebrow_outside_y = random.uniform(0, 1)
# expression.left_eyebrow_inside_y = random.uniform(0, 1)
# 设置眼睑,使用随机数并打印 # expression.right_eyebrow_outside_y = random.uniform(0, 1)
expression.left_eye_upper_lid_y = random.uniform(0, 1) # expression.right_eyebrow_inside_y = random.uniform(0, 1)
expression.left_eye_lower_lid_y = random.uniform(0, 1) # print(f"眉毛设置: 左外 {expression.left_eyebrow_outside_y}, 左内 {expression.left_eyebrow_inside_y}, 右外 {expression.right_eyebrow_outside_y}, 右内 {expression.right_eyebrow_inside_y}")
expression.right_eye_upper_lid_y = random.uniform(0, 1) #
expression.right_eye_lower_lid_y = random.uniform(0, 1) # # 设置眼睑,使用随机数并打印
print(f"眼睑设置: 左上 {expression.left_eye_upper_lid_y}, 左下 {expression.left_eye_lower_lid_y}, 右上 {expression.right_eye_upper_lid_y}, 右下 {expression.right_eye_lower_lid_y}") # expression.left_eye_upper_lid_y = random.uniform(0, 1)
# expression.left_eye_lower_lid_y = random.uniform(0, 1)
# 设置眼球,使用随机数并打印 # expression.right_eye_upper_lid_y = random.uniform(0, 1)
expression.left_eye_ball_x = random.uniform(0, 1) # expression.right_eye_lower_lid_y = random.uniform(0, 1)
expression.left_eye_ball_y = random.uniform(0, 1) # print(f"眼睑设置: 左上 {expression.left_eye_upper_lid_y}, 左下 {expression.left_eye_lower_lid_y}, 右上 {expression.right_eye_upper_lid_y}, 右下 {expression.right_eye_lower_lid_y}")
expression.right_eye_ball_x = random.uniform(0, 1) #
expression.right_eye_ball_y = random.uniform(0, 1) # # 设置眼球,使用随机数并打印
print(f"眼球设置: 左X {expression.left_eye_ball_x}, 左Y {expression.left_eye_ball_y}, 右X {expression.right_eye_ball_x}, 右Y {expression.right_eye_ball_y}") # expression.left_eye_ball_x = random.uniform(0, 1)
# expression.left_eye_ball_y = random.uniform(0, 1)
# 设置嘴巴,使用随机数并打印 # expression.right_eye_ball_x = random.uniform(0, 1)
expression.upper_lip_y = random.uniform(0, 1) # expression.right_eye_ball_y = random.uniform(0, 1)
expression.lower_lip_y = random.uniform(0, 1) # print(f"眼球设置: 左X {expression.left_eye_ball_x}, 左Y {expression.left_eye_ball_y}, 右X {expression.right_eye_ball_x}, 右Y {expression.right_eye_ball_y}")
print(f"嘴巴设置: 上唇 {expression.upper_lip_y}, 下唇 {expression.lower_lip_y}") #
# # 设置嘴巴,使用随机数并打印
# 设置下巴,使用随机数并打印 # expression.upper_lip_y = random.uniform(0, 1)
expression.jaw_x = random.uniform(0, 1) # expression.lower_lip_y = random.uniform(0, 1)
expression.jaw_y = random.uniform(0, 1) # print(f"嘴巴设置: 上唇 {expression.upper_lip_y}, 下唇 {expression.lower_lip_y}")
print(f"下巴设置: X {expression.jaw_x}, Y {expression.jaw_y}") #
# # 设置下巴,使用随机数并打印
# expression.jaw_x = random.uniform(0, 1)
# expression.jaw_y = random.uniform(0, 1)
# print(f"下巴设置: X {expression.jaw_x}, Y {expression.jaw_y}")
# 设置表情 # 设置表情
result = biohead.set_expression(expression) result = biohead.set_expression(expression)
@ -92,7 +94,7 @@ def test_biohead():
else: else:
print(f"{i+1}次流式睁眼失败,错误码: {result}") print(f"{i+1}次流式睁眼失败,错误码: {result}")
time.sleep(0.5)
# 闭眼,使用随机数并打印 # 闭眼,使用随机数并打印
proto_expr.eyelid.left_upper_y = random.uniform(0, 1) proto_expr.eyelid.left_upper_y = random.uniform(0, 1)
@ -107,7 +109,7 @@ def test_biohead():
else: else:
print(f"{i+1}次流式闭眼失败,错误码: {result}") print(f"{i+1}次流式闭眼失败,错误码: {result}")
time.sleep(0.2)
# 结束流式会话 # 结束流式会话
result = biohead.end_stream() result = biohead.end_stream()
@ -465,7 +467,7 @@ def test_sensor_data_stream():
client.close() client.close()
print("\n=== 双向流传感器数据测试完成 ===") print("\n=== 双向流传感器数据测试完成 ===")
if __name__ == "__main__": if __name__ == "__main__":
# test_biohead() test_biohead()
# test_camera() # test_camera()
# test_dexhand() # test_dexhand()
test_sensor_data_stream() # test_sensor_data_stream()