Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- NETWORK TECHNOLOGIES
- Sprawozdanie z L7.
- Character oriented industrial network protocols.
- 15.12.2019r
- Arkadiusz Danisz
- */
- int8 queryRIR(int16 *InputReg, int8 *Message, int8 QueryLen)
- {
- int16 register_length;
- int16 startAddr ;
- if (QueryLen != 6) {
- return 0;
- }
- register_length = ( (int16) Message[4] << 8) | Message[5];
- //Zwrócenie szczególnej odpowiedzi
- if (register_length == 0 || register_length > MAXN_READ_INPUTREGS)
- {
- Message[1] = Message[1] | 0x80;
- Message[2] = ILLEGAL_DATA_VALUE;
- return 3;
- }
- //Wyznaczenie początkowego adresu grupy rejestrów
- startAddr = ((int16)Message[2] << 8) | Message[3]
- //Zwrócenie szczególnej odpowiedzi
- if (startAddr > NINPUTREGS - 1 || startAddr + register_length > NINPUTREGS)
- {
- Message[1] = Message[1] | 0x80;
- Message[2] = ILLEGAL_DATA_ADDRESS;
- return 3;
- }
- int HiReg[NINPUTREGS];
- int LowReg[NINPUTREGS];
- int byteCount = NINPUTREGS * 2;
- int i;
- for (i = 0; i < NINPUTREGS; i++ ) {
- InputReg[i];
- int8 HiReg[i] = InputReg[i] & 0xFF;
- int8 LowReg[i] = InputReg[i] >> 8;
- }
- return byteCount;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement