Advertisement
milanmetal

[MSREAL] Zadatak

Dec 27th, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.10 KB | None | 0 0
  1. Izmeniti drajver za serijski port od prosle nedelje, tako da se prilikom prijema karaktera, aplikacija koja treba
  2. da cita iz prijemnog bafera asinhrono obavestava o pristiglim karakterima. U tu svrhu potrebno je imati i
  3. jednostavnu aplikaciju koja "cita" iz prijemnog bafera nakon sto je obavestena od strane drajvera.
  4.  
  5. Dodatno, u drajveru za serijski port treba implementirati funkciju slanja broja u opsegu 0-255.
  6.  
  7. Parametri za komunikaciju su i dalje 9600b/s, 8 bita podataka, 1 stop bit i bez koriscenja parity bita.
  8.  
  9. Predajni bafer je velicine 16 vrednosti tipa unsigned char.
  10.  
  11. Karakteri koji se salju prosledjuju se drajveru u formatu decimalnog broja, cifra po cifra, razdvojeni zarezom.
  12. Na primer:
  13. '1''4''6'','2''3''8'
  14. ce u bafer da smesti dva broja: 146 i 238.
  15.  
  16. Osim ovoga, neposredno pre zareza (ili na kraju sekvence koja se upisuje) u kontrolnoj sekvenci se mogu naci i kontrolni karakteri:
  17. R - iza broja koji se smesta a nakon njega broj koji govori koliko puta se taj broj smesta u bafer (pogledaj primer dole)
  18. I - iza kojeg idu dva jednocifrena broja koji govore koliko inkremenata prethodno unetog broja se smesta u bafer (pogledaj primer dole)
  19.  
  20. Na primer, nakon sekvence primljenih karaktera
  21.  
  22. 123,100R4 preko serijskog porta ce biti poslati 123, 100, 100, 100, 100, 100
  23. 10, 13, 23I23 preko serijskog porta ce biti poslati 10, 13, 23, 25, 27, 29 (tri puta 23 inkrementiran za dva)
  24. 10, 13, 23I23 preko serijskog porta ce biti poslati 10, 13, 23, 25, 27, 29 (prethodni += 2 pa tako tri puta)
  25. 100, 1, 3I14 preko serijskog porta ce biti poslati 100, 1, 3, 4, 5, 6, 7 (prethodni += 1 pa tako cetiri puta)
  26.  
  27. Predaja treba da omoguci blokiranje prilikom slanja kada je predajni bafer pun, tako da preostali
  28. podaci nece biti odbaceni vec poslati kada se oslobodi mesto u baferu. Takodje, potrebno je bafer
  29. zastititi koriscenjem spinlock-a obzirom da mu konkurentno mogu pristupati drugi procesi, kao i prekidna rutina.
  30.  
  31. Ocenjivanje:
  32.  
  33. asinhrono obavestavanje 2p
  34. slanje iz prekidne rutine i inicijalno slanje 2p
  35. Parsiranje i prepoznavanje komandi 2p
  36. R funkcija 2p
  37. I funkcija 2p
  38. Blokiranje 1p
  39. Spinlok 1p
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement