深圳创自技术CRT-591-Y通讯协议V1.2:身份证验证与IC卡管理

需积分: 45 20 下载量 179 浏览量 更新于2024-07-16 收藏 1.17MB DOC 举报
CRT-591-Y通讯协议(V1.2)是由深圳市创自技术有限公司发布的文档,专注于在一体机中实现身份证验证及IC卡的发放和回收功能。该协议详细规定了设备之间的通信流程、控制机制以及各种命令和状态的交互方式。以下是该协议的主要部分: 1. 通讯描述:文档首先概述了通讯的基本规格,包括工作方式、控制流程和传输控制字符的说明。这涵盖了如何建立连接、数据交换以及错误处理的基本规则。 2. 传输控制说明:这部分深入解析了通讯控制的各个方面,如工作模式、命令取消机制、正常和异常操作的响应流程,以及一个详细的通讯控制转换表,用于指导设备在不同状态下执行相应的操作。 3. 命令和应答:文档列出了众多命令,如初始化、状态查询、传感器检查、卡移动等,每个命令都有明确的格式和使用场景。同时,还提供了状态码和错误码供开发者参考,以便于理解和处理不同的结果。 4. 特定功能命令:例如,针对接触式CPU卡(如T=0/T=1),文档详细说明了激活、关闭、状态查询、通信等操作。对于西门子系列存储卡和I2C接口存储卡,也提供了各自的控制命令和数据通讯方法。 5. 射频卡控制:尽管没有直接提到射频卡,但可以推测这部分可能包含了对RFID或类似无线卡的支持,因为射频技术常用于非接触式卡的读写。 值得注意的是,虽然文档提供了一个全面的框架,但用户只使用了部分内容,特别是那些与身份证验证和IC卡操作直接相关的部分。这意味着开发者可以根据实际需求定制和集成这些命令,而不必涵盖所有复杂的控制细节。 总结来说,CRT-591-Y通讯协议V1.2是专为身份验证一体机设计的,它定义了一套详细的命令集和响应机制,以支持身份证处理和IC卡的管理。对于任何从事此类项目开发的人来说,理解和掌握这个协议是至关重要的,因为它为硬件和软件之间的交互提供了一个清晰的蓝图。

下面是我 运行终端代码后的返回,请帮我解释下:shenhaibo@bogon webAssembly % emcc add.c -s WASM=1 -o add.wasm wasm-ld: error: /opt/homebrew/Cellar/emscripten/3.1.40/libexec/cache/sysroot/lib/wasm32-emscripten/libstandalonewasm-nocatch.a(__main_void.o): undefined symbol: main emcc: error: '/opt/homebrew/Cellar/emscripten/3.1.40/libexec/llvm/bin/wasm-ld -o add.wasm /var/folders/hd/zkctfvz128366gcjfw9pgslr0000gn/T/emscripten_temp_0gmz58hs/add_0.o -L/opt/homebrew/Cellar/emscripten/3.1.40/libexec/cache/sysroot/lib/wasm32-emscripten /opt/homebrew/Cellar/emscripten/3.1.40/libexec/cache/sysroot/lib/wasm32-emscripten/crt1.o -lGL -lal -lhtml5 -lstandalonewasm-nocatch -lstubs-debug -lc-debug -ldlmalloc -lcompiler_rt -lc++-noexcept -lc++abi-debug-noexcept -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr /var/folders/hd/zkctfvz128366gcjfw9pgslr0000gn/T/tmp6m8wb6r0libemscripten_js_symbols.so --strip-debug --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_lib_deps --export-if-defined=__stop_em_lib_deps --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export=emscripten_stack_get_end --export=emscripten_stack_get_free --export=emscripten_stack_get_base --export=emscripten_stack_get_current --export=emscripten_stack_init --export=stackSave --export=stackRestore --export=stackAlloc --export=__errno_location --export-table -z stack-size=65536 --initial-memory=16777216 --max-memory=16777216 --stack-first' failed (returned 1) shenhaibo@bogon webAssembly %

2023-06-07 上传

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<windows.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<malloc.h> typedef struct character_name { char name[100]; struct character_name* next; }char_name; typedef struct character_title { char title[100]; struct character_title* next; }char_title; typedef struct character_identity { char identity[100]; struct character_identity* next; }char_iden; typedef struct character_attribute { int strength; struct character_attribute* next; }char_att; typedef struct character_information { char_name* _name; char_title* _title; char_iden* _iden; char_att* _att; struct character_information* next; }char_inf; char_inf* initialization() { char_inf* node = (char_inf*)malloc(sizeof(char_inf)); node->_name = (char_name*)malloc(sizeof(char_name)); node->_title = (char_title*)malloc(sizeof(char_title)); node->_iden = (char_iden*)malloc(sizeof(char_iden)); node->_att = (char_att*)malloc(sizeof(char_att)); return node; } char_inf* ceshi, * current, * end; char_name* name_current, * name_end; char_title* title_current, * title_end; char_iden* iden_current, * iden_end; char_att* att_current, att_end; int main() { ceshi = initialization(); name_current = (char_name*)malloc(sizeof(char_name)); name_current = ceshi->_name; strcpy(name_current->name, "ceshi_1_1"); name_current->next = (char_name*)malloc(sizeof(char_name)); name_current = name_current->next; strcpy(name_current->name, "ceshi_1_2"); strcpy(ceshi->_title->title, "ceshi_2"); strcpy(ceshi->_iden->identity, "ceshi_3"); ceshi->_att->strength = 4; name_current = ceshi->_name; while (name_current->next != NULL) { printf("%s\n", name_current->name); name_current = name_current->next; } printf("%s\n%s\n%d\n", ceshi->_title->title, ceshi->_iden->identity, ceshi->_att->strength); return 0; } 为什么提示我访问权限报错

2023-07-14 上传