diff options
| author | Votre Nom <git-account@loicguegan.fr> | 2017-08-30 13:57:44 +0400 |
|---|---|---|
| committer | Votre Nom <git-account@loicguegan.fr> | 2017-08-30 13:57:44 +0400 |
| commit | 19b26672103903556ae014732b169146d2e6a5a1 (patch) | |
| tree | beab53853a4f7e15672b13d11a5face1918e158a /R/sx1276.R | |
| parent | f37f200792444fee2f74e807acfd5be7c9180cd7 (diff) | |
Add R
Diffstat (limited to 'R/sx1276.R')
| -rwxr-xr-x | R/sx1276.R | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/R/sx1276.R b/R/sx1276.R new file mode 100755 index 0000000..8a1cd0c --- /dev/null +++ b/R/sx1276.R @@ -0,0 +1,50 @@ +# Changer les paramètres plus bas et éxécuter ce fichier afin de calculer la durée +# d'émission d'une trame en Lora sur le module sx1276 +# Voir sx1276 datasheet pour le détails de ces paramètres : +PL=10 +SF=12 +IH=0 +DE=0 +CR=1 +CRC=0 +BW=500*10^3 +nPreamble=6 + +# Cf SX1276 datasheet +getNPayload=function(PL,SF,IH,DE,CR,CRC){ + numerateur=8*PL-4*SF+28+16*CRC-20*IH; + denominateur=4*(SF-2*DE); + ceil=ceiling(numerateur/denominateur); + np=(8+max(ceil*(CR+4),0)); + return(np); +} + +# Cf SX1276 datasheet +getTPrembule=function(nPreamble,Rs){ + return((nPreamble+4.25)*(1/Rs)); +} + +# Cf SX1276 datasheet +getTPayload=function(nPayload,Rs){ + return(nPayload*(1/Rs)); +} + +# Cf SX1276 datasheet +getRs=function(BW,SF){ + Rs=BW/(2^SF) + return(Rs); +} + +getTPacket=function(PL,SF,IH,DE,CR,CRC,BW,nPreamble){ + Rs=getRs(BW,SF); + print(paste("Symbol duration",Rs,"s")) + tPrembule=getTPrembule(nPreamble,Rs); + print(paste("Preambule duration",tPrembule,"s")) + nPayload=getNPayload(PL,SF,IH,DE,CR,CRC); + tPayload=getTPayload(nPayload,Rs); + print(paste("Payload duration",tPayload,"s")) + return(tPrembule+tPayload); +} + +# Afficher le calcule +print(paste("Packet duration",getTPacket(PL,SF,IH,DE,CR,CRC,BW,nPreamble),"s"))
\ No newline at end of file |
