Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. /*
  2. NETWORK TECHNOLOGIES
  3. Sprawozdanie z L7.
  4. Character oriented industrial network protocols.
  5. 15.12.2019r
  6. Arkadiusz Danisz
  7. */
  8.  
  9.  
  10. int8 queryRIR(int16 *InputReg, int8 *Message, int8 QueryLen)
  11. {
  12. int16 register_length;
  13. int16 startAddr ;
  14. if (QueryLen != 6) {
  15. return 0;
  16. }
  17.  
  18. register_length = ( (int16) Message[4] << 8) | Message[5];
  19.  
  20. //Zwrócenie szczególnej odpowiedzi
  21. if (register_length == 0 || register_length > MAXN_READ_INPUTREGS)
  22. {
  23.  
  24. Message[1] = Message[1] | 0x80;
  25. Message[2] = ILLEGAL_DATA_VALUE;
  26. return 3;
  27. }
  28.  
  29. //Wyznaczenie początkowego adresu grupy rejestrów
  30. startAddr = ((int16)Message[2] << 8) | Message[3]
  31.  
  32. //Zwrócenie szczególnej odpowiedzi
  33. if (startAddr > NINPUTREGS - 1 || startAddr + register_length > NINPUTREGS)
  34. {
  35. Message[1] = Message[1] | 0x80;
  36. Message[2] = ILLEGAL_DATA_ADDRESS;
  37. return 3;
  38. }
  39.  
  40. int HiReg[NINPUTREGS];
  41. int LowReg[NINPUTREGS];
  42. int byteCount = NINPUTREGS * 2;
  43.  
  44. int i;
  45. for (i = 0; i < NINPUTREGS; i++ ) {
  46. InputReg[i];
  47. int8 HiReg[i] = InputReg[i] & 0xFF;
  48. int8 LowReg[i] = InputReg[i] >> 8;
  49. }
  50.  
  51. return byteCount;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement