
    h%0                     \   d dl Z d dlmZmZ d dlmZmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddddd	d
ddZddddZddddddddZddddddZdd d!Z G d" d#e          Z G d$ d%e          Z  G d& d'e          Z! eee!d(d()            eee!d(d()           dS )*    N)Packetbind_layers)TCPUDP)BitFieldBitEnumFieldX3BytesField
ShortFieldXShortFieldFieldLenFieldPacketLenField
XByteFieldXByteEnumFieldByteEnumFieldStrFixedLenFieldConditionalField
FlagsField	ByteFieldIntField	XIntFieldStrLenFieldScalingFieldzLOGIN MESSAGE	HEARTBEATLOCATIONALARMzONLINE COMMANDzONLINE COMMAND REPLYEDzINFORMATION TRANSMISSION)                     zEXTERNAL POWER VOLTAGEzTERMINAL STATUS SYNCHRONIZATIONzDOOR STATUS)r         zNo Power (Shutdown)zExtremely Low BatteryzVery Low BatteryLow BatteryMediumHighz	Very High)r   r         r#   r$      z	No SignalzExtremely Weak SignalzVery Weak SignalzGood SignalzStrong Signalr   r   r(   r)   r#   ChineseEnglish)r   r(   c                       e Zd Zd ZdS )BCDStrFixedLenFieldc                 |    t          |t                    rt          j        |          S t          j        |          S N)
isinstancebytesbinasciib2a_hexa2b_hex)selfpktxs      X/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/contrib/concox.pyi2hzBCDStrFixedLenField.i2h<   s6    a 	'#A&&&"""    N)__name__
__module____qualname__r;    r<   r:   r/   r/   ;   s#        # # # # #r<   r/   c                      e Zd ZdZg  edde           e eddd          d            e ed	d
          d            e edd          d            e edd          d            e edd
          d            e edd
          d            e edd
          d            e e	dd
d          d            e e	dd
d          d            e e
dd
ddd           d!            e e
d"d
ddd           d#            e ed$d
          d%            e e	d&d
d'          d(            e ed)d
dd*d+d,          d-            e ed.d
dd/d0d,          d1            e ed2d
dd3d4d,          d5            e ed6d
dd7d8d,          d9            e e	d:d
d;          d<            e ed=d
          d>            e ed?d
          d@            e edAd
          dB            e edCd
          dD            e edEd
          dF            e edGd
          dH            e edId
ddJdKd,          dL            e edMd
ddNdOd,          dP            e edQd
ddRdSd,          dT            e edUd
dVdWdXdYdZd[d\          d]            e ed^d
ddRdSd,          d_            e ed`d
ddadbd,          dc            e eddd
e          de            e edfd
e          dg            e edhdidjdkl          dm            e ednd
          do            e edkdpdq r          ds            e edtd
i d
dWdd[d;dudVdXddvdwdxddydzd{d'd|d}d~ddddddddddddddddddd          d            e edd
e          d            e edd
e          d            e edd
          d            e edd
dg d          d            eddi           eddi          ZdiS )CRX1NewPacketContentzCRX1 New Packet Contentprotocol_numberr   terminal_id00000000   )lengthc                 H    t          | j                  dk    o
| j        dk    S )Nr$   r   lenoriginalrC   r8   s    r:   <lambda>zCRX1NewPacketContent.<lambda>H   s&    S\""Q&F3+>$+F r<   yearr   c                 D    t          | j                  dk    o| j        dv S Nr$   )r   r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>L   '    S\1B1BQ1F 2,3|L, r<   monthr   c                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>O   '    #cl2C2Ca2G 3-CM- r<   dayc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>R   s'    CL0A0AA0E 1,#|K, r<   hourc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>U   rQ   r<   minutec                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>X   (    3s|3D3Dq3H 40</ r<   secondc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>[   r[   r<   gps_information_lengthr#   c                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>^   5    SF F !F" FJ&)&9\&I r<   positioning_satellite_numberc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>a   s5    3L L !L" LJ&)&9\&I r<   latitudegy/>r*   z!I)scalingndigitsfmtc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>f   (    CL))A- 0</ r<   	longitudec                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>k   rh   r<   speedc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>n   rT   r<   course
   c                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>q   s(    c#,6G6G!6K 70</ r<   latitude_hemisphereSouthNorth)r   r   c                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>w   *    C--1 c6I N 7 r<   longitude_hemisphereEastWestc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>}   rt   r<   gps_been_positioningNoYesc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rt   r<   
gps_statuszGPS real-timezDifferential positioningc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rt   r<   course_status_reservedr(   c                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   r`   r<   
lbs_lengthc                 D    t          | j                  dk    o| j        dv S )Nr$   )r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   s(    CL))A- ,8+ r<   mccc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rT   r<   mncc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rQ   r<   lacc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rT   r<   cell_idc                 D    t          | j                  dk    o| j        dv S rP   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rh   r<   mileagec                 t    t          | j                  dk    o | j        dv ot          | j                  dk    S )Nr$   )r      rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   sA    3s|3D3Dq3H 4G8+4G03CL0A0AB0F r<   defenceDeactivated	Activatedc                 D    t          | j                  dk    o| j        dv S Nr$   )r   r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rt   r<   accLowr'   c                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rt   r<   chargez
Not ChargeChargingc                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rt   r<   alarmr)   Normal	Vibrationz	Power Cutr%   SOSr+   c                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   s'    CL 1 1A 5 !#:M; r<   gps_trackingc                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rt   r<   oil_and_eletricity	ConnectedDisconnectedc                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   rt   r<   voltage_levelc                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   &    !Ic&9\&I r<   gsm_signal_strengthc                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   +    C<M<M= =6%5 r<   command_lengthNBcommand_content)rf   	length_ofc                 D    t          | j                  dk    o| j        dv S Nr$   )r    r!   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   r   r<   server_flag_bitc                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   r   r<    c                     | j         dz
  S )Nr#   )r   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   s    (:Q(> r<   length_fromc                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   r   r<   alarm_extendedz	Power cutzEnter fencer$   z
Exit fencez
Over speed	   DisplacementzEnter GPS dead zone   zExit GPS dead zone   zPower on   zGPS First fix notice   zLow battery   zLow battery protection   z
SIM Change   z	Power offzAirplane modeDisassembleDoorzACC OnzACC Off)r            c                 D    t          | j                  dk    o| j        dv S Nr$   )r   r!   r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   s'    CL 1 1A 5 !"#:M!;" r<   languagec                 D    t          | j                  dk    o| j        dv S r   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>   s(    S\1B1BQ1F 2231L2 r<   subprotocol_numberc                 D    t          | j                  dk    o| j        dv S Nr$   r"   rI   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>  s+    C<M<M= =2%1 r<   external_batteryc                 Z    t          | j                  dk    o| j        dv o
| j        dk    S )Nr$   r   r   rJ   rK   rC   r   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>  s<    #cl*;*;a*? +KCxE( +K,/,Bd,J r<   external_io_detection)door_statustrigger_status	io_statusc                 Z    t          | j                  dk    o| j        dv o
| j        dk    S r   r   rL   s    r:   rM   zCRX1NewPacketContent.<lambda>  s=    C--1 ;c6I N 7 ;2d: r<   information_serial_numbercrc)r=   r>   r?   namer   PROTOCOL_NUMBERSr   r/   r   r   r   r   r   r   r	   r   r   VOLTAGE_LEVELSGSM_SIGNAL_STRENGTHr   r   r   LANGUAGESUBPROTOCOL_NUMBERSr
   r   fields_descr@   r<   r:   rB   rB   B   s
       $DP($0@AAP 	z!DDD GG GG	H 	HP 	Ifd## &, &,	- 	-P 	Igt$$ '- '-	. 	.P 	IeT"" %, %,	- 	-P  	Ifd## &, &,	- 	-!P& 	Ih%% (0 (0	1 	1'P, 	Ih%% (0 (0	1 	1-P2 	H-tQ77 :J :J	K 	K3P8 	H3T1== @J @J	K 	K9P> 	LT!.tE E E0 0	1 	1?PH 	Ld!.tE E E0 0	1 	1IPR 	Igt$$ '- '-	. 	.SPX 	HXtR(( +0 +0	1 	1YP^ 	L.a: :   		 	_Pj 	L/q; ;   		 	kPv 	L/q; ;   		 	wPB 	LtQ"-1 1   		 	CPN 	H-tQ77 :J :J	K 	KOPT 	IlD)), ,	- 	-UP\ 	Kt$$ '- '-	. 	.]Pb 	Jud## &, &,	- 	-cPh 	Kt$$ '- '-	. 	.iPn 	LD))0 0	1 	1oPv 	HY%% (G (G	H 	HwP~ 	LD! . .   		 	PJ 	La* *   		 	KPV 	L4- -   		 	WPb 	Lq""$# #  		 		cPv 	Lq3 3   		 	wPB 	L-tQ!9 9   		 	CPN 	M/4@@ CJ CJ	K 	KOPT 	M/-/ /16 16	7 	7UP^ 	M*!$57 7 79J 9J		K 	K_Pj 	I'.. 16 16	7 	7kPp 	K!>>@ @ @BJ BJ		K 	KqP~ 	M $ )()%) +) +	)
 -) ,) ,) .) /) .) *) 0) -) 2) ,)  +!)" /#)$ ( "#+) ) ) ." "1	# 	#Pr 	M*d"$ $&2 &2	3 	3sP| 	M.-/ /12 12	3 	3}PD 	J) K K	L 	LEPL 	J.a : : :  ; ;	< 	<MP\ 	/66]P^ 	E4  _PKKKr<   rB   c                      e Zd ZdZ edd           e edd          d            e edd          d            e ed	de	d
           d            e edde	d           d            edd          gZ
dS )CRX1NewzCRX1 New	start_bitxx  default_packet_lengthNc                     | j         dk    S Nr   r   rL   s    r:   rM   zCRX1New.<lambda>      s}. r<   extended_packet_lengthc                     | j         dk    S Niyy  r   rL   s    r:   rM   zCRX1New.<lambda>"  r   r<   default_packet_contentc                     | j         S r1   )r   rL   s    r:   rM   zCRX1New.<lambda>'  s	    33L r<   r   c                     | j         dk    S r   r   rL   s    r:   rM   zCRX1New.<lambda>(      / r<   extended_packet_contentc                     | j         S r1   )r   rL   s    r:   rM   zCRX1New.<lambda>-  s	    33M r<   c                     | j         dk    S r   r   rL   s    r:   rM   zCRX1New.<lambda>.  r   r<   end_biti
  )r=   r>   r?   r   r   r   r   r
   r   rB   r   r@   r<   r:   r   r     s       DK((#
 
 /.	0 	0 	$
 
 /.	0 	0 	N3/'L'LN N N 0/	1 	1 	N4/'M'MO O O 0/	1 	1 	Iv&&-KKKr<   r   iu"  )sportdport)"r4   scapy.packetr   r   scapy.layers.inetr   r   scapy.fieldsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   rB   r   r@   r<   r:   <module>r      s[    , , , , , , , , & & & & & & & &3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 




"
$   #
+
    
!




  
!


   
 # # # # #* # # #R R R R R6 R R Rj    f   8 CD 1 1 1 1 CD 1 1 1 1 1 1r<   