getDs(EDAS1 AlertBufferMgq.PDAS1 ESS1.4.4getRP(FDAS1 FS81,FDAS1 FSB1,24,8);getDs(FDAS1 AlertBufferMsg,FDAS1 DSAlert Buffer,8,1020);getRP(FDAS1DSAlert Buffer,FDASAlertBuffer 1,0,4000); returnCode = NO ERROR;/EDAS2+/while (returnCode !=NOT AVAILABLE) returnCode =NO ERROR;RECEIVE QUEUING MESSAGE(queue port id array[11], timeout,(MESSAGE ADDR TYPE)FDAS2 AlertBufferMsg,&buffer len, returnCode);if ((returnCode== NO ERROR) & buffer len >=1040)getDs(FDAS2 AlertBufferMsq,FDAS2 FSS1,4,4);getRP(FDAS2 FSS1, FDAS2 FSB1,24,8):getDs(FDAS2AlertBufferMsg,FDAS2 DS Alert Buffer,8,1020);getRP(FDAS2 DSAlert Buffer,FDASAlertBuffer 2,0,4000); returnCode =NO ERROR;/+EDAS3./ while (returnCode != NOT AVATLABLE)returnCode =NO ERROR;RECEIVE QUEUING MESSAGE(queue port id array[12],timeout, (MESAGE ADDR TYPE)FDAS3 AlertBufferMsg,6buffer len,&returnCode);if ((returnCode == NO ERROR) 6 buffer len >= 1040) getDS(FDAS3 AlertBufferMsq,FDAS3 FSS1,4,4);getRP(FDAS3 FSS1,FDAS3 FSB1.24.8):getDS(FDAS3 AlertBufferMsq,FDAS3 DS Alert Buffer,8,1020);getRP(FDAS3 D3 Alert Buffer,FDASAlertBuffer 3,0,4000); if(charArrayToInt(FDAS1 FSB1, 1) == 3) for (=1;<=500;i++) CASIDValue[44] =(FDASAlertBuffer ifi-1]&0xC0)>>6;CASID Value[4*i3]=(EDASAlertBuffer 1[i1]点0x30)>>4;-1114CASID Valuel4上12](FDASAlertBuffer 1[i10x0c) >> 2;1CASID Value[4 4i11=(PDASAlertBuffer 1[i-1]点0x03):-
时间: 2024-03-31 19:36:12 浏览: 110
这段代码看起来是一段嵌套的程序,其中包含了多个函数的调用以及一些条件判断和循环。根据代码中的函数名称和参数,我们可以大致了解其作用:
1. 首先调用getRP函数从AlertBufferMgq.PDAS1 ESS1中获取一个长度为8位,位偏移量为24的数据,存储到FSB1中。
2. 然后调用getDs函数从AlertBufferMsg中获取一个长度为1020位,位偏移量为8的数据,存储到DSAlert Buffer中。
3. 再次调用getRP函数从DSAlert Buffer中获取一个长度为4000位,位偏移量为0的数据,存储到AlertBuffer1中。
4. 进入一个while循环,循环条件为returnCode不等于NOT AVAILABLE。在循环中,调用RECEIVE QUEUING MESSAGE函数等待消息的到来,如果返回值为NO ERROR且消息长度大于等于1040,则执行以下步骤:
- 调用getDs函数从AlertBufferMsq中获取一个长度为4位,位偏移量为4的数据,存储到FSS1中。
- 再次调用getRP函数从FSS1中获取一个长度为8位,位偏移量为24的数据,存储到FSB1中。
- 再次调用getDs函数从AlertBufferMsq中获取一个长度为1020位,位偏移量为8的数据,存储到DS Alert Buffer中。
- 最后再次调用getRP函数从DSAlert Buffer中获取一个长度为4000位,位偏移量为0的数据,存储到AlertBuffer2中。
5. 如果AlertBuffer1中的第一个字节的第二个位为3,则执行以下步骤:
- 进入一个for循环,循环500次,每次执行以下步骤:
- 将AlertBuffer中第(i-1)个字节的高两位取出并右移6位,存储到CASIDValue数组的第44个元素中。
- 将AlertBuffer中第i个字节的第4到7位取出并右移4位,存储到CASIDValue数组的第4*i+3个元素中。
- 将AlertBuffer中第i个字节的第0到3位取出并右移2位,存储到CASIDValue数组的第4*i+2个元素中。
- 将AlertBuffer中第(i-1)个字节的低两位取出并存储到CASIDValue数组的第4*i+1、4*i和4*i-1个元素中。
这段代码的具体作用还需要根据程序的上下文来进行分析。
阅读全文