-
Notifications
You must be signed in to change notification settings - Fork 0
/
mapping_config_test.c
139 lines (103 loc) · 6.7 KB
/
mapping_config_test.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "bufferSendrecv.h"
#include "frame.h"
#include "format.h"
#include "datagram.h"
#include "register.h"
#include "mapping_config.h"
// 测试变量区
char send_card_name[] = "enp4s0"; // 命令行ifconfig -a 查看
char rev_card_name[] = "enp3s0"; // ifconfig enp2s0 promisc 将接收端口开启为混杂模式,这样才能收到不符合mac地址的报文
uint16 st = 0;
// uint16 addr=0x00;
// uint16 datalen=0x04;
// uint8 data=0x12;
// uint16 irq=0;
bool valid = true;
// 测试程序
int main()
{
// 套接字创建
send_socketCreate(send_card_name);
rev_socketCreate(rev_card_name);
// 帧初始化
nc_frame_t frm;
initframe(&frm);
/**配置过程数据通道CH=2映射,映射方向写,可测试通道主站读从站写方向**/
mapping_config_t *mapping0_proc = malloc(sizeof(mapping_config_t)); // 动态分配内存
memset(mapping0_proc, 0, sizeof(mapping_config_t));
// uint16 MAPNo, uint16 CH, uint16 MAP_start, uint16 LEN, uint8 irq_enable, uint16 data_start, uint8 map_count
init_mapping_config(mapping0_proc, 0x01, 0x02, 0x00, 0x04, 0x00, 0x00, 0x02); // IRQ0x00为写,0x10为读
pdo_mapping_config_by_ring_position(st, mapping0_proc);
uint32 re_uint32_data1 = nc_slave_aprd_uint32(st, 0x2a0, &valid);
printf("uint32_data read:%2x\n\n", re_uint32_data1);
uint32 re_uint32_data2 = nc_slave_aprd_uint32(st, 0x284 + (mapping0_proc->mapping_count) * 8, &valid);
printf("uint32_data read:%2x\n\n", re_uint32_data2);
free(mapping0_proc);
/**配置过程数据通道CH=2映射,映射方向写,可测试通道主站读从站写方向**/
// /**配置过程数据通道CH=2映射,映射方向读,可测试通道主站读从站写方向**/
// mapping_config_t* mapping1_proc = malloc(sizeof(mapping_config_t));//动态分配内存
// memset(mapping1_proc, 0, sizeof(mapping_config_t));
// // uint16 map_no, uint16 channel_no, uint16 map_start, uint16 channel_len, uint8 irq_enable, uint16 data_start
// init_mapping_config(mapping1_proc, 0x01, 0x02, 0x00, 0x04, 0x10, 0x00, 0x01);//IRQ0x00为写,0x10为读
// pdo_mapping_config_by_ring_position(st, mapping1_proc);
// uint32 re_uint32_data3=nc_slave_aprd_uint32(st,0x280 + (mapping1_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data3);
// uint32 re_uint32_data4=nc_slave_aprd_uint32(st,0x284 + (mapping1_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data4);
// free(mapping1_proc);
// /**配置过程数据通道CH=2映射,映射方向读,可测试通道主站读从站写方向**/
// /**配置过程数据通道CH=3映射,映射方向写,可测试通道主站写从站读方向**/
// mapping_config_t* mapping2_proc = malloc(sizeof(mapping_config_t));//动态分配内存
// memset(mapping2_proc, 0, sizeof(mapping_config_t));
// // uint16 map_no, uint16 channel_no, uint16 map_start, uint16 channel_len, uint8 irq_enable, uint16 data_start
// init_mapping_config(mapping2_proc, 0x01, 0x03, 0x00, 0x04, 0x00, 0x00, 0x02);//IRQ0x00为写,0x10为读
// pdo_mapping_config_by_ring_position(st, mapping2_proc);
// uint32 re_uint32_data5=nc_slave_aprd_uint32(st,0x280 + (mapping2_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data5);
// uint32 re_uint32_data6=nc_slave_aprd_uint32(st,0x284 + (mapping2_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data6);
// free(mapping2_proc);
// /**配置过程数据通道CH=3映射,映射方向写,可测试通道主站写从站读方向**/
// /**配置过程数据通道CH=3映射,映射方向读,可测试通道主站写从站读方向**/
// mapping_config_t* mapping0_proc = malloc(sizeof(mapping_config_t));//动态分配内存
// memset(mapping0_proc, 0, sizeof(mapping_config_t));
// // uint16 map_no, uint16 channel_no, uint16 map_start, uint16 channel_len, uint8 irq_enable, uint16 data_start
// init_mapping_config(mapping0_proc, 0x01, 0x03, 0x00, 0x04, 0x10, 0x00, 0x03);//IRQ0x00为写,0x10为读
// pdo_mapping_config_by_ring_position(st, mapping0_proc);
// uint32 re_uint32_data7=nc_slave_aprd_uint32(st,0x280 + (mapping0_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data7);
// uint32 re_uint32_data8=nc_slave_aprd_uint32(st,0x284 + (mapping0_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data8);
// free(mapping0_proc);
// /**配置过程数据通道CH=3映射,映射方向读,可测试通道主站写从站读方向**/
// /**配置服务请求通道CH=0映射,映射方向读,通道方向主站写从站读**/
// mapping_config_t* mapping0_proc = malloc(sizeof(mapping_config_t));//动态分配内存
// memset(mapping0_proc, 0, sizeof(mapping_config_t));
// // uint16 map_no, uint16 channel_no, uint16 map_start, uint16 channel_len, uint8 irq_enable, uint16 data_start
// init_mapping_config(mapping0_proc, 0x01, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00);//IRQ0x00为写,0x10为读
// pdo_mapping_config_by_ring_position(st, mapping0_proc);
// uint32 re_uint32_data9=nc_slave_aprd_uint32(st,0x280 + (mapping0_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data9);
// uint32 re_uint32_data10=nc_slave_aprd_uint32(st,0x284 + (mapping0_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data10);
// free(mapping0_proc);
// /**配置服务请求通道CH=0映射,映射方向读,通道方向主站写从站读**/
// /**配置服务请求通道CH=1映射,映射方向写,通道方向主站读从站写**/
// mapping_config_t* mapping0_proc = malloc(sizeof(mapping_config_t));//动态分配内存
// memset(mapping0_proc, 0, sizeof(mapping_config_t));
// // uint16 map_no, uint16 channel_no, uint16 map_start, uint16 channel_len, uint8 irq_enable, uint16 data_start
// init_mapping_config(mapping0_proc, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x05);//IRQ0x00为写,0x10为读
// pdo_mapping_config_by_ring_position(st, mapping0_proc);
// uint32 re_uint32_data11=nc_slave_aprd_uint32(st,0x280 + (mapping0_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data11);
// uint32 re_uint32_data12=nc_slave_aprd_uint32(st,0x284 + (mapping0_proc->mapping_count)*8,&valid);
// printf("uint32_data read:%2x\n\n",re_uint32_data12);
// free(mapping0_proc);
// /**配置服务请求通道CH=1映射,映射方向写,通道方向主站读从站写**/
// 套接字关闭
send_rev_socketClose();
return 0;
}