波特率 9600
校验方式 奇(ODD)
数据位 8
停止位 1
1楼 AccessPort软件中监控数据简单说明(SECA智能卡)
3B F7 11 00 01 40 96 70 71 09 0E 6C B6 D6 --------ATR数据
C1 12 06 00 19
C1 12 05 00 19
C1 12 04 00 19
C1 12 03 00 19
C1 12 02 00 19
C1 12 01 00 19
C1 12 00 00 19
频道供应商的标识
static int32_t set_provider_info(struct s_reader * reader, int32_t i)
{
def_resp;
uchar ins12[] = { 0xc1, 0x12, 0x00, 0x00, 0x19 }; // get provider info
复制代码
C1 30 00 00 10
// decoding cw
static int32_t seca_do_ecm(struct s_reader * reader, const ECM_REQUEST *er, struct s_ecm_answer *ea)
{
def_resp;
unsigned char ins3c[] = { 0xc1,0x3c,0x00,0x00,0x00 }; // coding cw
unsigned char ins3a[] = { 0xc1,0x3a,0x00,0x00,0x10 }; // decoding cw
复制代码
reader-seca.c:
从采集数据中找“80 4c 00 00 04” 后面4个 字节就应该是 Boxid
- static int32_t tongfang_card_init(struct s_reader *reader, ATR newatr)
- {
- static const uchar begin_cmd[] = {0x00,0xa4,0x04,0x00,0x05,0xf9,0x5a,0x54,0x00,0x06};
- static const uchar get_serial_cmd[] = {0x80,0x46,0x00,0x00,0x04,0x01,0x00,0x00,0x04};
- uchar pairing_cmd[] = {0x80,0x4c,0x00,0x00,0x04,0xFF,0xFF,0xFF,0xFF};
- uchar data[257];
- int32_t data_len = 0;
- uint16_t status = 0;
- uchar boxID[] = {0xFF, 0xFF, 0xFF, 0xFF};
- int32_t i;
- def_resp;
- get_hist;
- if ((hist_size < 4) || (memcmp(hist, "NTIC",4))) return ERROR;
- reader->caid = 0x4A02;
- // For now, only one provider, 0000
- reader->nprov = 1;
- memset(reader->prid, 0x00, sizeof(reader->prid));
- cs_ri_log(reader, "[reader-tongfang] Tongfang card detected");
- write_cmd(begin_cmd, begin_cmd + 5);
- if((cta_res[cta_lr - 2] != 0x90) || (cta_res[cta_lr - 1] != 0x00)) return ERROR;
- write_cmd(get_serial_cmd, get_serial_cmd + 5);
- if((cta_res[cta_lr - 2] & 0xf0) != 0x60) return ERROR;
- data_len = tongfang_read_data(reader, cta_res[cta_lr - 1], data, &status);
- if(data_len < 0) return ERROR;
- if(status != 0x9000) return ERROR;
- memset(reader->hexserial, 0, 8);
- memcpy(reader->hexserial + 2, data, 4); // might be incorrect offset
- if (reader->boxid > 0)
- {
- /* the boxid is specified in the config */
- for (i = 0; i < 4; i++)
- {
- boxID[i] = (reader->boxid >> (8 * (3 - i))) % 0x100;
- }
- }
- memcpy(pairing_cmd + 5, boxID, sizeof(boxID));
- write_cmd(pairing_cmd, pairing_cmd + 5);
- cs_ri_log(reader, "type: Tongfang, caid: %04X, serial: %llu, hex serial: %02x%02x%02x%02x, BoxID: %02X%02X%02X%02X",
- reader->caid, (unsigned long long) b2ll(6, reader->hexserial), reader->hexserial[2],
- reader->hexserial[3], reader->hexserial[4], reader->hexserial[5],
- boxID[0], boxID[1], boxID[2], boxID[3]);
- return OK;
- }
复制代码复制代码
reader-tongfang.c
扫码下方或搜索关注公众号“卫星参数网”,独家内幕新闻!