老师您好,我在使用 C# 开发与 FM 模组相关功能时,遇到了一些问题,想向您请教一下。
目前在进行人脸注册时遇到无法注册成功的问题。我已经尝试了以下三种注册方式,分别调用了三段不同的代码逻辑,但都无法正常完成注册操作。经过资料查阅,我认为使用 0x26 命令进行注册是最合适的方式,但实际测试中依然无法成功注册人脸信息。
烦请您帮忙看一下可能存在的问题,或是否有推荐的注册流程或调试思路可以参考,非常感谢!
//单方向录入,需多次调用
public static byte[] BuildEnroll(string name)
{
byte[] nameBytes = Encoding.ASCII.GetBytes(name.PadRight(32, '\0'));
byte[] data = new byte[35];
data[0] = 0x00;
Array.Copy(nameBytes, 0, data, 1, 32);
data[33] = 0x01;
data[34] = 10;
return Pack(0x13, data);
}
//一次交互式录入多个方向,推荐方式
public static byte[] BuildEnrollItg(string name)
{
byte[] nameBytes = Encoding.ASCII.GetBytes(name.PadRight(32, '\0'));
byte[] data = new byte[40];
data[0] = 0x00; // admin
Array.Copy(nameBytes, 0, data, 1, 32);
data[33] = 0x01; // direction (正面)
data[34] = 0x10; // enroll_type: 0x00=交互式
data[35] = 0x00; // enable_duplicate = false
data[36] = 10; // timeout
data[37] = data[38] = data[39] = 0; // reserved
return Pack(0x26, data);
}
//单帧录入一次正脸
public static byte[] BuildEnrollSingle(string name)
{
byte[] nameBytes = Encoding.ASCII.GetBytes(name.PadRight(32, '\0'));
byte[] data = new byte[34];
data[0] = 0x00; // admin = 0
Array.Copy(nameBytes, 0, data, 1, 32);
data[33] = 10; // timeout 10s
return Pack(0x1D, data);
}
DeepSeek回复: