File tree Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Original file line number Diff line number Diff line change @@ -48,6 +48,7 @@ defmodule Jeff.Command do
48
48
ComSettings ,
49
49
EncryptionKey ,
50
50
EncryptionServer ,
51
+ FileTransfer ,
51
52
LedSettings ,
52
53
OutputSettings ,
53
54
TextSettings
@@ -117,6 +118,7 @@ defmodule Jeff.Command do
117
118
defp encode ( KEYSET , params ) , do: EncryptionKey . encode ( params )
118
119
defp encode ( CHLNG , params ) , do: ChallengeData . encode ( params )
119
120
defp encode ( SCRYPT , params ) , do: EncryptionServer . encode ( params )
121
+ defp encode ( FILETRANSFER , params ) , do: FileTransfer . encode ( params )
120
122
defp encode ( ACURXSIZE , size: size ) , do: << size :: size ( 16 ) - little >>
121
123
defp encode ( ABORT , _params ) , do: nil
122
124
Original file line number Diff line number Diff line change
1
+ defmodule Jeff.Command.FileTransfer do
2
+ @ moduledoc """
3
+ File Transfer Command Settings
4
+
5
+ OSDP v2.2 Specification Reference: 6.26
6
+ """
7
+
8
+ defstruct type: 1 ,
9
+ total_size: 0 ,
10
+ offset: 0 ,
11
+ fragment_size: 0 ,
12
+ data: << >>
13
+
14
+ @ type t :: % __MODULE__ {
15
+ type: 1 .. 255 ,
16
+ total_size: non_neg_integer ( ) ,
17
+ offset: non_neg_integer ( ) ,
18
+ data: binary ( ) ,
19
+ }
20
+
21
+ @ type param ( ) ::
22
+ { :type , 1 .. 255 }
23
+ | { :total_size , non_neg_integer ( ) }
24
+ | { :offset , non_neg_integer ( ) }
25
+ | { :fragment_size , non_neg_integer ( ) }
26
+ | { :data , binary ( ) }
27
+ @ type params ( ) :: t ( ) | [ param ( ) ]
28
+
29
+ @ spec new ( params ( ) ) :: t ( )
30
+ def new ( params ) do
31
+ struct ( __MODULE__ , params )
32
+ end
33
+
34
+ @ spec encode ( params ( ) ) :: binary ( )
35
+ def encode ( params ) do
36
+ settings = new ( params )
37
+
38
+ <<
39
+ settings . type ,
40
+ settings . total_size :: size ( 4 ) - unit ( 8 ) - little ,
41
+ settings . offset :: size ( 4 ) - unit ( 8 ) - little ,
42
+ settings . fragment_size :: size ( 2 ) - unit ( 8 ) - little ,
43
+ settings . data :: binary
44
+ >>
45
+ end
46
+ end
You can’t perform that action at this time.
0 commit comments