TST_MAIN传感器数据记录器的实现

版权申诉
0 下载量 108 浏览量 更新于2024-10-21 收藏 3KB RAR 举报
资源摘要信息: "TST_MAIN.rar_logger_sensor" 在探讨此资源的细节之前,我们首先解析资源的标题、描述和标签,它们为我们提供了关于资源功能和用途的关键信息。 标题 "TST_MAIN.rar_logger_sensor" 表明这是一个与日志记录传感器数据相关的压缩包资源,且文件可能经过了RAR压缩格式处理。文件的名称暗示它可能包含用于检测和记录传感器数据的核心文件,更具体地说是针对串行(Serial)传感器。"TST_MAIN" 可能是程序的主入口或者主执行文件的名称,而 "rar" 后缀表明这是一个已经被压缩的文件包。 描述 "detect 4 serial sensor and log in file" 揭示了程序的主要功能:检测四个串行传感器并将数据记录到文件中。这里提到的“检测”可能是指检测传感器的连接状态、数据更新等;而“记录到文件”意味着程序会将采集到的传感器数据保存到某个文件中,便于后续的分析和回溯。这表明了该资源可能涉及串行通信编程、日志记录机制以及文件操作等多个技术领域。 标签 "logger sensor" 简洁地标识了这个资源与日志记录和传感器监测的关联性,这再次印证了我们在标题和描述中提取的信息。 根据压缩包文件的文件名称列表,我们发现仅有一个文件 "TST_MAIN.CPP"。该文件很可能是用C++语言编写的源代码文件,因为通常.CPP后缀表示C++源代码文件。从文件名可以推测,该文件是程序的主文件或者至少是核心文件,因为它与标题中提及的 "TST_MAIN" 相对应。 从上述分析中,我们可以进一步提炼出以下几个关键知识点: 1. 串行通信:由于资源涉及到“serial sensor”(串行传感器),这表明程序需要通过串行接口与传感器进行通信。串行通信是一种常见的通信方式,用于远距离设备通信,常见的串行接口包括RS-232、RS-485等。在编程层面,需要掌握如何设置串行端口的参数(如波特率、数据位、停止位和校验位等),以及如何发送和接收数据。 2. 传感器数据处理:资源的描述说明需要检测并记录传感器的数据。传感器数据处理涉及数据采集、滤波、转换(比如将模拟信号转换为数字信号)和解释(根据传感器类型和特性解析数据含义)。在C++中,可能涉及到对特定数据类型的操作和处理。 3. 日志记录:资源的目的是将检测到的数据“log in file”,这意味着程序需要实现日志记录的功能。日志记录是一种用于记录程序运行时各种事件的机制,它对于程序的调试、错误追踪以及数据分析非常重要。在C++中实现日志记录可能需要使用文件I/O操作,例如使用C++标准库中的fstream类来打开、写入和关闭文件。 4. 文件操作:日志记录最终要将数据写入文件,所以涉及到文件操作的知识点。在C++中,文件操作可以通过fstream、ifstream或ofstream等类进行。需要了解如何创建文件、打开文件、读写文件以及关闭文件等操作。 5. 程序结构和设计:由于标题中的 "TST_MAIN" 可能表示程序的入口,了解C++程序结构和设计模式,如MVC模式,有助于组织和维护代码。这对于编写一个结构良好、易于测试和扩展的程序是非常重要的。 综上所述,"TST_MAIN.rar_logger_sensor" 这个资源涉及到了串行通信、传感器数据处理、日志记录以及文件操作等多个知识点。开发者需要对这些知识点有深入的理解和实际的操作能力,才能有效地利用这个资源。在实际应用中,还需注意编程实践中的错误处理和性能优化,这些都是设计健壮且高效的程序所不可或缺的。
2023-06-02 上传

def compute_mAP(trn_binary, tst_binary, trn_label, tst_label): """ compute mAP by searching testset from trainset https://github.com/flyingpot/pytorch_deephash """ for x in trn_binary, tst_binary, trn_label, tst_label: x.long() AP = [] Ns = torch.arange(1, trn_binary.size(0) + 1) Ntest = torch.arange(1, tst_binary.size(0) + 1) print("trn_binary.size(0):",trn_binary.size(0)) print("tst_binary.size(0):", tst_binary.size(0)) print("Ns:",Ns) print("Ns:", Ntest) # print("Ns(train):",Ns) for i in range(tst_binary.size(0)): query_label, query_binary = tst_label[i], tst_binary[i] # 把测试图像编码和标签赋值给->查询图像编码和标签 _, query_result = torch.sum((query_binary != trn_binary).long(), dim=1).sort() # 判断查询图像编码是否等于训练图像编码,相等的总和,并排序。 print("查询标签-----------------------------------------------------:",query_label) print("查询二进制:", query_binary) print(len(query_binary)) print("查询结果:",query_result) print("是否相等:",query_binary != trn_binary) print("查询结果1:", torch.sum((query_binary != trn_binary).long(), dim=1)) print("查询结果2:",torch.sum((query_binary != trn_binary).long(), dim=1).sort()) correct = (query_label == trn_label[query_result]).float() # 正确匹配的二进制编码个数 print("trn_label[query_result]:",trn_label[query_result]) num_ones = torch.sum(correct == 1) print("查询正确的个数:",num_ones) print("查询正确:",correct) P = torch.cumsum(correct, dim=0) / Ns print("torch.cumsum(correct, dim=0)",torch.cumsum(correct, dim=0)) print("查询正确/Ns",torch.Tensor(P)) #每个位置的精度 P AP.append(torch.sum(P * correct) / torch.sum(correct)) # print("---:",AP) acc = num_ones / tst_binary.size(0) print("ACC================================== ", acc) mAP = torch.mean(torch.Tensor(AP)) return mAP 请问怎么将这段代码改成EER评估指标的代码

2023-07-12 上传