TSMasterAPI 2.3.3__tar.gz → 2024.6.5.1124__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: TSMasterAPI
3
- Version: 2.3.3
3
+ Version: 2024.6.5.1124
4
4
  Summary: Use TSMaster hardware
5
5
  Home-page: UNKNOWN
6
6
  Author: seven
@@ -27,9 +27,9 @@ tsdiag_can_delete_all.restype = None
27
27
  tsdiag_can_delete_all.argtypes = []
28
28
 
29
29
  #arg[0] ANetworkIndex
30
- tssocket_dhcp_stop = dll.tssocket_dhcp_stop
31
- tssocket_dhcp_stop.restype = None
32
- tssocket_dhcp_stop.argtypes = [s32]
30
+ rawsocket_dhcp_stop = dll.rawsocket_dhcp_stop
31
+ rawsocket_dhcp_stop.restype = None
32
+ rawsocket_dhcp_stop.argtypes = [s32]
33
33
 
34
34
  #arg[0] ANetworkIndex
35
35
  #arg[1] ping_addr
@@ -2667,51 +2667,51 @@ tsapp_unlock_camera_channel.restype = s32
2667
2667
  tsapp_unlock_camera_channel.argtypes = [s32]
2668
2668
 
2669
2669
  #arg[0] x
2670
- tssocket_htons = dll.tssocket_htons
2671
- tssocket_htons.restype = u16
2672
- tssocket_htons.argtypes = [u16]
2670
+ rawsocket_htons = dll.rawsocket_htons
2671
+ rawsocket_htons.restype = u16
2672
+ rawsocket_htons.argtypes = [u16]
2673
2673
 
2674
2674
  #arg[0] x
2675
- tssocket_htonl = dll.tssocket_htonl
2676
- tssocket_htonl.restype = u32
2677
- tssocket_htonl.argtypes = [u32]
2675
+ rawsocket_htonl = dll.rawsocket_htonl
2676
+ rawsocket_htonl.restype = u32
2677
+ rawsocket_htonl.argtypes = [u32]
2678
2678
 
2679
2679
  #arg[0] cp
2680
2680
  #arg[1] addr
2681
- tssocket_aton = dll.tssocket_aton
2682
- tssocket_aton.restype = s32
2683
- tssocket_aton.argtypes = [pchar,Pip4_addr_t]
2681
+ rawsocket_aton = dll.rawsocket_aton
2682
+ rawsocket_aton.restype = s32
2683
+ rawsocket_aton.argtypes = [pchar,Pip4_addr_t]
2684
2684
 
2685
2685
  #arg[0] addr
2686
- tssocket_ntoa = dll.tssocket_ntoa
2687
- tssocket_ntoa.restype = pchar
2688
- tssocket_ntoa.argtypes = [Pip4_addr_t]
2686
+ rawsocket_ntoa = dll.rawsocket_ntoa
2687
+ rawsocket_ntoa.restype = pchar
2688
+ rawsocket_ntoa.argtypes = [Pip4_addr_t]
2689
2689
 
2690
2690
  #arg[0] cp
2691
2691
  #arg[1] addr
2692
- tssocket_aton6 = dll.tssocket_aton6
2693
- tssocket_aton6.restype = s32
2694
- tssocket_aton6.argtypes = [pchar,Pip6_addr_t]
2692
+ rawsocket_aton6 = dll.rawsocket_aton6
2693
+ rawsocket_aton6.restype = s32
2694
+ rawsocket_aton6.argtypes = [pchar,Pip6_addr_t]
2695
2695
 
2696
2696
  #arg[0] addr
2697
- tssocket_ntoa6 = dll.tssocket_ntoa6
2698
- tssocket_ntoa6.restype = pchar
2699
- tssocket_ntoa6.argtypes = [Pip6_addr_t]
2697
+ rawsocket_ntoa6 = dll.rawsocket_ntoa6
2698
+ rawsocket_ntoa6.restype = pchar
2699
+ rawsocket_ntoa6.argtypes = [Pip6_addr_t]
2700
2700
 
2701
2701
  #arg[0] af
2702
2702
  #arg[1] src
2703
2703
  #arg[2] dst
2704
2704
  #arg[3] size
2705
- tssocket_inet_ntop = dll.tssocket_inet_ntop
2706
- tssocket_inet_ntop.restype = pchar
2707
- tssocket_inet_ntop.argtypes = [s32,ps32,pchar,u32]
2705
+ rawsocket_inet_ntop = dll.rawsocket_inet_ntop
2706
+ rawsocket_inet_ntop.restype = pchar
2707
+ rawsocket_inet_ntop.argtypes = [s32,ps32,pchar,u32]
2708
2708
 
2709
2709
  #arg[0] af
2710
2710
  #arg[1] src
2711
2711
  #arg[2] dst
2712
- tssocket_inet_pton = dll.tssocket_inet_pton
2713
- tssocket_inet_pton.restype = s32
2714
- tssocket_inet_pton.argtypes = [s32,pchar,ps32]
2712
+ rawsocket_inet_pton = dll.rawsocket_inet_pton
2713
+ rawsocket_inet_pton.restype = s32
2714
+ rawsocket_inet_pton.argtypes = [s32,pchar,ps32]
2715
2715
 
2716
2716
  #arg[0] ANetworkIndex
2717
2717
  tssocket_initialize = dll.tssocket_initialize
@@ -2731,42 +2731,51 @@ tssocket_finalize.argtypes = [s32]
2731
2731
 
2732
2732
  #arg[0] ANetworkIndex
2733
2733
  #arg[1] macaddr
2734
- #arg[2] ipaddr
2735
- #arg[3] netmask
2736
- #arg[4] gateway
2737
- #arg[5] mtu
2734
+ #arg[2] vLan
2735
+ #arg[3] ipaddr
2736
+ #arg[4] netmask
2737
+ #arg[5] gateway
2738
+ #arg[6] mtu
2738
2739
  tssocket_add_device = dll.tssocket_add_device
2739
2740
  tssocket_add_device.restype = s32
2740
- tssocket_add_device.argtypes = [s32,pu8,Tip4_addr_t,Tip4_addr_t,Tip4_addr_t,u16]
2741
+ tssocket_add_device.argtypes = [s32,pu8,pu16,Tip4_addr_t,Tip4_addr_t,Tip4_addr_t,u16]
2741
2742
 
2742
2743
  #arg[0] ANetworkIndex
2743
2744
  #arg[1] macaddr
2744
- #arg[2] ipaddr
2745
+ #arg[2] vLan
2746
+ #arg[3] ipaddr
2745
2747
  tssocket_remove_device = dll.tssocket_remove_device
2746
2748
  tssocket_remove_device.restype = s32
2747
- tssocket_remove_device.argtypes = [s32,pu8,Pip4_addr_t]
2749
+ tssocket_remove_device.argtypes = [s32,pu8,pu16,Pip4_addr_t]
2748
2750
 
2749
2751
  #arg[0] ANetworkIndex
2750
2752
  #arg[1] macaddr
2751
- #arg[2] ipaddr
2752
- #arg[3] netmask
2753
- #arg[4] gateway
2754
- #arg[5] mtu
2753
+ #arg[2] vlan
2754
+ #arg[3] ipaddr
2755
+ #arg[4] netmask
2756
+ #arg[5] gateway
2757
+ #arg[6] mtu
2755
2758
  tssocket_add_device_ex = dll.tssocket_add_device_ex
2756
2759
  tssocket_add_device_ex.restype = s32
2757
- tssocket_add_device_ex.argtypes = [s32,pchar,pchar,pchar,pchar,u16]
2760
+ tssocket_add_device_ex.argtypes = [s32,pchar,pchar,pchar,pchar,pchar,u16]
2758
2761
 
2759
2762
  #arg[0] ANetworkIndex
2760
2763
  #arg[1] mac
2761
- #arg[2] ipaddr
2764
+ #arg[2] vlan
2765
+ #arg[3] ipaddr
2762
2766
  tssocket_remove_device_ex = dll.tssocket_remove_device_ex
2763
2767
  tssocket_remove_device_ex.restype = s32
2764
- tssocket_remove_device_ex.argtypes = [s32,pchar,pchar]
2768
+ tssocket_remove_device_ex.argtypes = [s32,pchar,pchar,pchar]
2765
2769
 
2766
2770
  #arg[0] ANetworkIndex
2767
- tssocket_dhcp_start = dll.tssocket_dhcp_start
2768
- tssocket_dhcp_start.restype = s32
2769
- tssocket_dhcp_start.argtypes = [s32]
2771
+ rawsocket_get_errno = dll.rawsocket_get_errno
2772
+ rawsocket_get_errno.restype = s32
2773
+ rawsocket_get_errno.argtypes = [s32]
2774
+
2775
+ #arg[0] ANetworkIndex
2776
+ rawsocket_dhcp_start = dll.rawsocket_dhcp_start
2777
+ rawsocket_dhcp_start.restype = s32
2778
+ rawsocket_dhcp_start.argtypes = [s32]
2770
2779
 
2771
2780
  #arg[0] ANetworkIndex
2772
2781
  #arg[1] maxfdp1
@@ -2774,17 +2783,17 @@ tssocket_dhcp_start.argtypes = [s32]
2774
2783
  #arg[3] writeset
2775
2784
  #arg[4] exceptset
2776
2785
  #arg[5] timeout
2777
- tssocket_select = dll.tssocket_select
2778
- tssocket_select.restype = s32
2779
- tssocket_select.argtypes = [s32,s32,Pts_fd_set,Pts_fd_set,Pts_fd_set,Pts_timeval]
2786
+ rawsocket_select = dll.rawsocket_select
2787
+ rawsocket_select.restype = s32
2788
+ rawsocket_select.argtypes = [s32,s32,Pts_fd_set,Pts_fd_set,Pts_fd_set,Pts_timeval]
2780
2789
 
2781
2790
  #arg[0] ANetworkIndex
2782
2791
  #arg[1] fds
2783
2792
  #arg[2] nfds
2784
2793
  #arg[3] timeout
2785
- tssocket_poll = dll.tssocket_poll
2786
- tssocket_poll.restype = s32
2787
- tssocket_poll.argtypes = [s32,Pts_pollfd,size_t,s32]
2794
+ rawsocket_poll = dll.rawsocket_poll
2795
+ rawsocket_poll.restype = s32
2796
+ rawsocket_poll.argtypes = [s32,Pts_pollfd,size_t,s32]
2788
2797
 
2789
2798
  #arg[0] ANetworkIndex
2790
2799
  #arg[1] domain
@@ -2793,107 +2802,107 @@ tssocket_poll.argtypes = [s32,Pts_pollfd,size_t,s32]
2793
2802
  #arg[4] recv_cb
2794
2803
  #arg[5] presend_cb
2795
2804
  #arg[6] send_cb
2796
- tssocket = dll.tssocket
2797
- tssocket.restype = s32
2798
- tssocket.argtypes = [s32,s32,s32,s32,tosun_recv_callback,tosun_tcp_presend_callback,tosun_tcp_ack_callback]
2805
+ rawsocket = dll.rawsocket
2806
+ rawsocket.restype = s32
2807
+ rawsocket.argtypes = [s32,s32,s32,s32,tosun_recv_callback,tosun_tcp_presend_callback,tosun_tcp_ack_callback]
2799
2808
 
2800
2809
  #arg[0] s
2801
2810
  #arg[1] addr
2802
2811
  #arg[2] addrlen
2803
- tssocket_accept = dll.tssocket_accept
2804
- tssocket_accept.restype = s32
2805
- tssocket_accept.argtypes = [s32,Pts_sockaddr,pu32]
2812
+ rawsocket_accept = dll.rawsocket_accept
2813
+ rawsocket_accept.restype = s32
2814
+ rawsocket_accept.argtypes = [s32,Pts_sockaddr,pu32]
2806
2815
 
2807
2816
  #arg[0] s
2808
2817
  #arg[1] name
2809
2818
  #arg[2] namelen
2810
- tssocket_bind = dll.tssocket_bind
2811
- tssocket_bind.restype = s32
2812
- tssocket_bind.argtypes = [s32,Pts_sockaddr,u32]
2819
+ rawsocket_bind = dll.rawsocket_bind
2820
+ rawsocket_bind.restype = s32
2821
+ rawsocket_bind.argtypes = [s32,Pts_sockaddr,u32]
2813
2822
 
2814
2823
  #arg[0] s
2815
2824
  #arg[1] how
2816
- tssocket_shutdown = dll.tssocket_shutdown
2817
- tssocket_shutdown.restype = s32
2818
- tssocket_shutdown.argtypes = [s32,s32]
2825
+ rawsocket_shutdown = dll.rawsocket_shutdown
2826
+ rawsocket_shutdown.restype = s32
2827
+ rawsocket_shutdown.argtypes = [s32,s32]
2819
2828
 
2820
2829
  #arg[0] s
2821
2830
  #arg[1] name
2822
2831
  #arg[2] namelen
2823
- tssocket_getpeername = dll.tssocket_getpeername
2824
- tssocket_getpeername.restype = s32
2825
- tssocket_getpeername.argtypes = [s32,Pts_sockaddr,pu32]
2832
+ rawsocket_getpeername = dll.rawsocket_getpeername
2833
+ rawsocket_getpeername.restype = s32
2834
+ rawsocket_getpeername.argtypes = [s32,Pts_sockaddr,pu32]
2826
2835
 
2827
2836
  #arg[0] s
2828
2837
  #arg[1] name
2829
2838
  #arg[2] namelen
2830
- tssocket_getsockname = dll.tssocket_getsockname
2831
- tssocket_getsockname.restype = s32
2832
- tssocket_getsockname.argtypes = [s32,Pts_sockaddr,pu32]
2839
+ rawsocket_getsockname = dll.rawsocket_getsockname
2840
+ rawsocket_getsockname.restype = s32
2841
+ rawsocket_getsockname.argtypes = [s32,Pts_sockaddr,pu32]
2833
2842
 
2834
2843
  #arg[0] s
2835
2844
  #arg[1] level
2836
2845
  #arg[2] optname
2837
2846
  #arg[3] optval
2838
2847
  #arg[4] optlen
2839
- tssocket_getsockopt = dll.tssocket_getsockopt
2840
- tssocket_getsockopt.restype = s32
2841
- tssocket_getsockopt.argtypes = [s32,s32,s32,ps32,pu32]
2848
+ rawsocket_getsockopt = dll.rawsocket_getsockopt
2849
+ rawsocket_getsockopt.restype = s32
2850
+ rawsocket_getsockopt.argtypes = [s32,s32,s32,ps32,pu32]
2842
2851
 
2843
2852
  #arg[0] s
2844
2853
  #arg[1] level
2845
2854
  #arg[2] optname
2846
2855
  #arg[3] optval
2847
2856
  #arg[4] optlen
2848
- tssocket_setsockopt = dll.tssocket_setsockopt
2849
- tssocket_setsockopt.restype = s32
2850
- tssocket_setsockopt.argtypes = [s32,s32,s32,ps32,u32]
2857
+ rawsocket_setsockopt = dll.rawsocket_setsockopt
2858
+ rawsocket_setsockopt.restype = s32
2859
+ rawsocket_setsockopt.argtypes = [s32,s32,s32,ps32,u32]
2851
2860
 
2852
2861
  #arg[0] s
2853
- tssocket_close = dll.tssocket_close
2854
- tssocket_close.restype = s32
2855
- tssocket_close.argtypes = [s32]
2862
+ rawsocket_close = dll.rawsocket_close
2863
+ rawsocket_close.restype = s32
2864
+ rawsocket_close.argtypes = [s32]
2856
2865
 
2857
2866
  #arg[0] s
2858
2867
  #arg[1] AForceExitTimeWait
2859
- tssocket_close_v2 = dll.tssocket_close_v2
2860
- tssocket_close_v2.restype = s32
2861
- tssocket_close_v2.argtypes = [s32,s32]
2868
+ rawsocket_close_v2 = dll.rawsocket_close_v2
2869
+ rawsocket_close_v2.restype = s32
2870
+ rawsocket_close_v2.argtypes = [s32,s32]
2862
2871
 
2863
2872
  #arg[0] s
2864
2873
  #arg[1] name
2865
2874
  #arg[2] namelen
2866
- tssocket_connect = dll.tssocket_connect
2867
- tssocket_connect.restype = s32
2868
- tssocket_connect.argtypes = [s32,Pts_sockaddr,u32]
2875
+ rawsocket_connect = dll.rawsocket_connect
2876
+ rawsocket_connect.restype = s32
2877
+ rawsocket_connect.argtypes = [s32,Pts_sockaddr,u32]
2869
2878
 
2870
2879
  #arg[0] s
2871
2880
  #arg[1] backlog
2872
- tssocket_listen = dll.tssocket_listen
2873
- tssocket_listen.restype = s32
2874
- tssocket_listen.argtypes = [s32,s32]
2881
+ rawsocket_listen = dll.rawsocket_listen
2882
+ rawsocket_listen.restype = s32
2883
+ rawsocket_listen.argtypes = [s32,s32]
2875
2884
 
2876
2885
  #arg[0] s
2877
2886
  #arg[1] mem
2878
2887
  #arg[2] len
2879
2888
  #arg[3] flags
2880
- tssocket_recv = dll.tssocket_recv
2881
- tssocket_recv.restype = size_t
2882
- tssocket_recv.argtypes = [s32,ps32,size_t,s32]
2889
+ rawsocket_recv = dll.rawsocket_recv
2890
+ rawsocket_recv.restype = size_t
2891
+ rawsocket_recv.argtypes = [s32,ps32,size_t,s32]
2883
2892
 
2884
2893
  #arg[0] s
2885
2894
  #arg[1] mem
2886
2895
  #arg[2] len
2887
- tssocket_read = dll.tssocket_read
2888
- tssocket_read.restype = size_t
2889
- tssocket_read.argtypes = [s32,ps32,size_t]
2896
+ rawsocket_read = dll.rawsocket_read
2897
+ rawsocket_read.restype = size_t
2898
+ rawsocket_read.argtypes = [s32,ps32,size_t]
2890
2899
 
2891
2900
  #arg[0] s
2892
2901
  #arg[1] iov
2893
2902
  #arg[2] iovcnt
2894
- tssocket_readv = dll.tssocket_readv
2895
- tssocket_readv.restype = size_t
2896
- tssocket_readv.argtypes = [s32,Pts_iovec,s32]
2903
+ rawsocket_readv = dll.rawsocket_readv
2904
+ rawsocket_readv.restype = size_t
2905
+ rawsocket_readv.argtypes = [s32,Pts_iovec,s32]
2897
2906
 
2898
2907
  #arg[0] s
2899
2908
  #arg[1] mem
@@ -2901,31 +2910,31 @@ tssocket_readv.argtypes = [s32,Pts_iovec,s32]
2901
2910
  #arg[3] flags
2902
2911
  #arg[4] from
2903
2912
  #arg[5] fromlen
2904
- tssocket_recvfrom = dll.tssocket_recvfrom
2905
- tssocket_recvfrom.restype = size_t
2906
- tssocket_recvfrom.argtypes = [s32,ps32,size_t,s32,Pts_sockaddr,pu32]
2913
+ rawsocket_recvfrom = dll.rawsocket_recvfrom
2914
+ rawsocket_recvfrom.restype = size_t
2915
+ rawsocket_recvfrom.argtypes = [s32,ps32,size_t,s32,Pts_sockaddr,pu32]
2907
2916
 
2908
2917
  #arg[0] s
2909
2918
  #arg[1] Amessage
2910
2919
  #arg[2] flags
2911
- tssocket_recvmsg = dll.tssocket_recvmsg
2912
- tssocket_recvmsg.restype = size_t
2913
- tssocket_recvmsg.argtypes = [s32,Pts_msghdr,s32]
2920
+ rawsocket_recvmsg = dll.rawsocket_recvmsg
2921
+ rawsocket_recvmsg.restype = size_t
2922
+ rawsocket_recvmsg.argtypes = [s32,Pts_msghdr,s32]
2914
2923
 
2915
2924
  #arg[0] s
2916
2925
  #arg[1] dataptr
2917
2926
  #arg[2] size
2918
2927
  #arg[3] flags
2919
- tssocket_send = dll.tssocket_send
2920
- tssocket_send.restype = size_t
2921
- tssocket_send.argtypes = [s32,ps32,size_t,s32]
2928
+ rawsocket_send = dll.rawsocket_send
2929
+ rawsocket_send.restype = size_t
2930
+ rawsocket_send.argtypes = [s32,ps32,size_t,s32]
2922
2931
 
2923
2932
  #arg[0] s
2924
2933
  #arg[1] Amessage
2925
2934
  #arg[2] flags
2926
- tssocket_sendmsg = dll.tssocket_sendmsg
2927
- tssocket_sendmsg.restype = size_t
2928
- tssocket_sendmsg.argtypes = [s32,Pts_msghdr,s32]
2935
+ rawsocket_sendmsg = dll.rawsocket_sendmsg
2936
+ rawsocket_sendmsg.restype = size_t
2937
+ rawsocket_sendmsg.argtypes = [s32,Pts_msghdr,s32]
2929
2938
 
2930
2939
  #arg[0] s
2931
2940
  #arg[1] dataptr
@@ -2933,37 +2942,37 @@ tssocket_sendmsg.argtypes = [s32,Pts_msghdr,s32]
2933
2942
  #arg[3] flags
2934
2943
  #arg[4] ato
2935
2944
  #arg[5] tolen
2936
- tssocket_sendto = dll.tssocket_sendto
2937
- tssocket_sendto.restype = size_t
2938
- tssocket_sendto.argtypes = [s32,ps32,size_t,s32,Pts_sockaddr,u32]
2945
+ rawsocket_sendto = dll.rawsocket_sendto
2946
+ rawsocket_sendto.restype = size_t
2947
+ rawsocket_sendto.argtypes = [s32,ps32,size_t,s32,Pts_sockaddr,u32]
2939
2948
 
2940
2949
  #arg[0] s
2941
2950
  #arg[1] dataptr
2942
2951
  #arg[2] size
2943
- tssocket_write = dll.tssocket_write
2944
- tssocket_write.restype = size_t
2945
- tssocket_write.argtypes = [s32,ps32,size_t]
2952
+ rawsocket_write = dll.rawsocket_write
2953
+ rawsocket_write.restype = size_t
2954
+ rawsocket_write.argtypes = [s32,ps32,size_t]
2946
2955
 
2947
2956
  #arg[0] s
2948
2957
  #arg[1] iov
2949
2958
  #arg[2] iovcnt
2950
- tssocket_writev = dll.tssocket_writev
2951
- tssocket_writev.restype = size_t
2952
- tssocket_writev.argtypes = [s32,Pts_iovec,s32]
2959
+ rawsocket_writev = dll.rawsocket_writev
2960
+ rawsocket_writev.restype = size_t
2961
+ rawsocket_writev.argtypes = [s32,Pts_iovec,s32]
2953
2962
 
2954
2963
  #arg[0] s
2955
2964
  #arg[1] cmd
2956
2965
  #arg[2] argp
2957
- tssocket_ioctl = dll.tssocket_ioctl
2958
- tssocket_ioctl.restype = s32
2959
- tssocket_ioctl.argtypes = [s32,s32,ps32]
2966
+ rawsocket_ioctl = dll.rawsocket_ioctl
2967
+ rawsocket_ioctl.restype = s32
2968
+ rawsocket_ioctl.argtypes = [s32,s32,ps32]
2960
2969
 
2961
2970
  #arg[0] s
2962
2971
  #arg[1] cmd
2963
2972
  #arg[2] val
2964
- tssocket_fcntl = dll.tssocket_fcntl
2965
- tssocket_fcntl.restype = s32
2966
- tssocket_fcntl.argtypes = [s32,s32,s32]
2973
+ rawsocket_fcntl = dll.rawsocket_fcntl
2974
+ rawsocket_fcntl.restype = s32
2975
+ rawsocket_fcntl.argtypes = [s32,s32,s32]
2967
2976
 
2968
2977
  #arg[0] ANetworkIndex
2969
2978
  #arg[1] AIPEndPoint
@@ -3184,6 +3193,23 @@ tssocket_unregister_udp_receivefrom_eventsv2 = dll.tssocket_unregister_udp_recei
3184
3193
  tssocket_unregister_udp_receivefrom_eventsv2.restype = s32
3185
3194
  tssocket_unregister_udp_receivefrom_eventsv2.argtypes = [s32]
3186
3195
 
3196
+ #arg[0] s
3197
+ #arg[1] AEvent
3198
+ tssocket_register_udp_receivefrom_eventv3 = dll.tssocket_register_udp_receivefrom_eventv3
3199
+ tssocket_register_udp_receivefrom_eventv3.restype = s32
3200
+ tssocket_register_udp_receivefrom_eventv3.argtypes = [s32,TSSocketReceiveEventV3_Win32]
3201
+
3202
+ #arg[0] s
3203
+ #arg[1] AEvent
3204
+ tssocket_unregister_udp_receivefrom_eventv3 = dll.tssocket_unregister_udp_receivefrom_eventv3
3205
+ tssocket_unregister_udp_receivefrom_eventv3.restype = s32
3206
+ tssocket_unregister_udp_receivefrom_eventv3.argtypes = [s32,TSSocketReceiveEventV3_Win32]
3207
+
3208
+ #arg[0] s
3209
+ tssocket_unregister_udp_receivefrom_eventsv3 = dll.tssocket_unregister_udp_receivefrom_eventsv3
3210
+ tssocket_unregister_udp_receivefrom_eventsv3.restype = s32
3211
+ tssocket_unregister_udp_receivefrom_eventsv3.argtypes = [s32]
3212
+
3187
3213
  #arg[0] s
3188
3214
  #arg[1] AEvent
3189
3215
  tssocket_register_tcp_receive_eventv2 = dll.tssocket_register_tcp_receive_eventv2
@@ -4696,3 +4722,304 @@ mask_fpu_exceptions = dll.mask_fpu_exceptions
4696
4722
  mask_fpu_exceptions.restype = s32
4697
4723
  mask_fpu_exceptions.argtypes = [cbool]
4698
4724
 
4725
+ #arg[0] AActivate
4726
+ rpc_tsmaster_activate_server = dll.rpc_tsmaster_activate_server
4727
+ rpc_tsmaster_activate_server.restype = s32
4728
+ rpc_tsmaster_activate_server.argtypes = [cbool]
4729
+
4730
+ #arg[0] ATSMasterAppName
4731
+ #arg[1] AHandle
4732
+ rpc_tsmaster_create_client = dll.rpc_tsmaster_create_client
4733
+ rpc_tsmaster_create_client.restype = s32
4734
+ rpc_tsmaster_create_client.argtypes = [pchar,psize_t]
4735
+
4736
+ #arg[0] AHandle
4737
+ #arg[1] AActivate
4738
+ rpc_tsmaster_activate_client = dll.rpc_tsmaster_activate_client
4739
+ rpc_tsmaster_activate_client.restype = s32
4740
+ rpc_tsmaster_activate_client.argtypes = [size_t,cbool]
4741
+
4742
+ #arg[0] AHandle
4743
+ rpc_tsmaster_delete_client = dll.rpc_tsmaster_delete_client
4744
+ rpc_tsmaster_delete_client.restype = s32
4745
+ rpc_tsmaster_delete_client.argtypes = [size_t]
4746
+
4747
+ #arg[0] AHandle
4748
+ rpc_tsmaster_cmd_start_simulation = dll.rpc_tsmaster_cmd_start_simulation
4749
+ rpc_tsmaster_cmd_start_simulation.restype = s32
4750
+ rpc_tsmaster_cmd_start_simulation.argtypes = [size_t]
4751
+
4752
+ #arg[0] AHandle
4753
+ rpc_tsmaster_cmd_stop_simulation = dll.rpc_tsmaster_cmd_stop_simulation
4754
+ rpc_tsmaster_cmd_stop_simulation.restype = s32
4755
+ rpc_tsmaster_cmd_stop_simulation.argtypes = [size_t]
4756
+
4757
+ #arg[0] AHandle
4758
+ #arg[1] ACompleteName
4759
+ #arg[2] AValue
4760
+ rpc_tsmaster_cmd_write_system_var = dll.rpc_tsmaster_cmd_write_system_var
4761
+ rpc_tsmaster_cmd_write_system_var.restype = s32
4762
+ rpc_tsmaster_cmd_write_system_var.argtypes = [size_t,pchar,pchar]
4763
+
4764
+ #arg[0] AHandle
4765
+ #arg[1] AAddr
4766
+ #arg[2] ASizeBytes
4767
+ rpc_tsmaster_cmd_transfer_memory = dll.rpc_tsmaster_cmd_transfer_memory
4768
+ rpc_tsmaster_cmd_transfer_memory.restype = s32
4769
+ rpc_tsmaster_cmd_transfer_memory.argtypes = [size_t,pu8,size_t]
4770
+
4771
+ #arg[0] AHandle
4772
+ #arg[1] AMsg
4773
+ #arg[2] ALevel
4774
+ rpc_tsmaster_cmd_log = dll.rpc_tsmaster_cmd_log
4775
+ rpc_tsmaster_cmd_log.restype = s32
4776
+ rpc_tsmaster_cmd_log.argtypes = [size_t,pchar,s32]
4777
+
4778
+ #arg[0] AHandle
4779
+ rpc_tsmaster_cmd_set_mode_sim = dll.rpc_tsmaster_cmd_set_mode_sim
4780
+ rpc_tsmaster_cmd_set_mode_sim.restype = s32
4781
+ rpc_tsmaster_cmd_set_mode_sim.argtypes = [size_t]
4782
+
4783
+ #arg[0] AHandle
4784
+ rpc_tsmaster_cmd_set_mode_realtime = dll.rpc_tsmaster_cmd_set_mode_realtime
4785
+ rpc_tsmaster_cmd_set_mode_realtime.restype = s32
4786
+ rpc_tsmaster_cmd_set_mode_realtime.argtypes = [size_t]
4787
+
4788
+ #arg[0] AHandle
4789
+ rpc_tsmaster_cmd_set_mode_free = dll.rpc_tsmaster_cmd_set_mode_free
4790
+ rpc_tsmaster_cmd_set_mode_free.restype = s32
4791
+ rpc_tsmaster_cmd_set_mode_free.argtypes = [size_t]
4792
+
4793
+ #arg[0] AHandle
4794
+ #arg[1] ATimeUs
4795
+ rpc_tsmaster_cmd_sim_step = dll.rpc_tsmaster_cmd_sim_step
4796
+ rpc_tsmaster_cmd_sim_step.restype = s32
4797
+ rpc_tsmaster_cmd_sim_step.argtypes = [size_t,s64]
4798
+
4799
+ #arg[0] AAddress
4800
+ #arg[1] ASizeBytes
4801
+ create_process_shared_memory = dll.create_process_shared_memory
4802
+ create_process_shared_memory.restype = s32
4803
+ create_process_shared_memory.argtypes = [ppu8,s32]
4804
+
4805
+ #arg[0] AAddress
4806
+ #arg[1] ASizeBytes
4807
+ get_process_shared_memory = dll.get_process_shared_memory
4808
+ get_process_shared_memory.restype = s32
4809
+ get_process_shared_memory.argtypes = [ppu8,ps32]
4810
+
4811
+ #arg[0] AHandle
4812
+ rpc_tsmaster_cmd_sim_step_batch_start = dll.rpc_tsmaster_cmd_sim_step_batch_start
4813
+ rpc_tsmaster_cmd_sim_step_batch_start.restype = s32
4814
+ rpc_tsmaster_cmd_sim_step_batch_start.argtypes = [size_t]
4815
+
4816
+ #arg[0] AHandle
4817
+ #arg[1] ATimeUs
4818
+ rpc_tsmaster_cmd_sim_step_batch_end = dll.rpc_tsmaster_cmd_sim_step_batch_end
4819
+ rpc_tsmaster_cmd_sim_step_batch_end.restype = s32
4820
+ rpc_tsmaster_cmd_sim_step_batch_end.argtypes = [size_t,s64]
4821
+
4822
+ #arg[0] AHandle
4823
+ #arg[1] AProjectFullPath
4824
+ rpc_tsmaster_cmd_get_project = dll.rpc_tsmaster_cmd_get_project
4825
+ rpc_tsmaster_cmd_get_project.restype = s32
4826
+ rpc_tsmaster_cmd_get_project.argtypes = [size_t,ppchar]
4827
+
4828
+ #arg[0] AHandle
4829
+ #arg[1] ASysVarName
4830
+ #arg[2] AValue
4831
+ rpc_tsmaster_cmd_read_system_var = dll.rpc_tsmaster_cmd_read_system_var
4832
+ rpc_tsmaster_cmd_read_system_var.restype = s32
4833
+ rpc_tsmaster_cmd_read_system_var.argtypes = [size_t,pchar,pdouble]
4834
+
4835
+ #arg[0] AHandle
4836
+ #arg[1] ABusType
4837
+ #arg[2] AAddr
4838
+ #arg[3] AValue
4839
+ rpc_tsmaster_cmd_read_signal = dll.rpc_tsmaster_cmd_read_signal
4840
+ rpc_tsmaster_cmd_read_signal.restype = s32
4841
+ rpc_tsmaster_cmd_read_signal.argtypes = [size_t,TLIBApplicationChannelType,pchar,pdouble]
4842
+
4843
+ #arg[0] AHandle
4844
+ #arg[1] ABusType
4845
+ #arg[2] AAddr
4846
+ #arg[3] AValue
4847
+ rpc_tsmaster_cmd_write_signal = dll.rpc_tsmaster_cmd_write_signal
4848
+ rpc_tsmaster_cmd_write_signal.restype = s32
4849
+ rpc_tsmaster_cmd_write_signal.argtypes = [size_t,TLIBApplicationChannelType,pchar,double]
4850
+
4851
+ #arg[0] ASymbolAddress
4852
+ can_rbs_set_normal_signal = dll.can_rbs_set_normal_signal
4853
+ can_rbs_set_normal_signal.restype = s32
4854
+ can_rbs_set_normal_signal.argtypes = [pchar]
4855
+
4856
+ #arg[0] ASymbolAddress
4857
+ can_rbs_set_rc_signal = dll.can_rbs_set_rc_signal
4858
+ can_rbs_set_rc_signal.restype = s32
4859
+ can_rbs_set_rc_signal.argtypes = [pchar]
4860
+
4861
+ #arg[0] ASymbolAddress
4862
+ #arg[1] ALowerLimit
4863
+ #arg[2] AUpperLimit
4864
+ can_rbs_set_rc_signal_with_limit = dll.can_rbs_set_rc_signal_with_limit
4865
+ can_rbs_set_rc_signal_with_limit.restype = s32
4866
+ can_rbs_set_rc_signal_with_limit.argtypes = [pchar,s32,s32]
4867
+
4868
+ #arg[0] ASymbolAddress
4869
+ #arg[1] AAlgorithmName
4870
+ #arg[2] AIdxByteStart
4871
+ #arg[3] AByteCount
4872
+ can_rbs_set_crc_signal = dll.can_rbs_set_crc_signal
4873
+ can_rbs_set_crc_signal.restype = s32
4874
+ can_rbs_set_crc_signal.argtypes = [pchar,pchar,s32,s32]
4875
+
4876
+ clear_user_constants = dll.clear_user_constants
4877
+ clear_user_constants.restype = s32
4878
+ clear_user_constants.argtypes = []
4879
+
4880
+ #arg[0] AHeaderFile
4881
+ append_user_constants_from_c_header = dll.append_user_constants_from_c_header
4882
+ append_user_constants_from_c_header.restype = s32
4883
+ append_user_constants_from_c_header.argtypes = [pchar]
4884
+
4885
+ #arg[0] AConstantName
4886
+ #arg[1] AValue
4887
+ #arg[2] ADesc
4888
+ append_user_constant = dll.append_user_constant
4889
+ append_user_constant.restype = s32
4890
+ append_user_constant.argtypes = [pchar,double,pchar]
4891
+
4892
+ #arg[0] AConstantName
4893
+ delete_user_constant = dll.delete_user_constant
4894
+ delete_user_constant.restype = s32
4895
+ delete_user_constant.argtypes = [pchar]
4896
+
4897
+ #arg[0] ACount
4898
+ get_mini_program_count = dll.get_mini_program_count
4899
+ get_mini_program_count.restype = s32
4900
+ get_mini_program_count.argtypes = [ps32]
4901
+
4902
+ #arg[0] AIndex
4903
+ #arg[1] AKind
4904
+ #arg[2] AProgramName
4905
+ #arg[3] ADisplayName
4906
+ get_mini_program_info_by_index = dll.get_mini_program_info_by_index
4907
+ get_mini_program_info_by_index.restype = s32
4908
+ get_mini_program_info_by_index.argtypes = [s32,ps32,ppchar,ppchar]
4909
+
4910
+ #arg[0] AProgramNames
4911
+ compile_mini_programs = dll.compile_mini_programs
4912
+ compile_mini_programs.restype = s32
4913
+ compile_mini_programs.argtypes = [pchar]
4914
+
4915
+ #arg[0] ACompleteName
4916
+ #arg[1] AValue
4917
+ set_system_var_init_value = dll.set_system_var_init_value
4918
+ set_system_var_init_value.restype = s32
4919
+ set_system_var_init_value.argtypes = [pchar,pchar]
4920
+
4921
+ #arg[0] ACompleteName
4922
+ #arg[1] AValue
4923
+ get_system_var_init_value = dll.get_system_var_init_value
4924
+ get_system_var_init_value.restype = s32
4925
+ get_system_var_init_value.argtypes = [pchar,ppchar]
4926
+
4927
+ #arg[0] ACompleteName
4928
+ reset_system_var_to_init = dll.reset_system_var_to_init
4929
+ reset_system_var_to_init.restype = s32
4930
+ reset_system_var_to_init.argtypes = [pchar]
4931
+
4932
+ #arg[0] AOwner
4933
+ reset_all_system_var_to_init = dll.reset_all_system_var_to_init
4934
+ reset_all_system_var_to_init.restype = s32
4935
+ reset_all_system_var_to_init.argtypes = [pchar]
4936
+
4937
+ #arg[0] ACompleteName
4938
+ #arg[1] AValue
4939
+ get_system_var_generic_upg1 = dll.get_system_var_generic_upg1
4940
+ get_system_var_generic_upg1.restype = s32
4941
+ get_system_var_generic_upg1.argtypes = [pchar,ppchar]
4942
+
4943
+ #arg[0] AHandle
4944
+ #arg[1] ASgnAddress
4945
+ #arg[2] AValue
4946
+ rpc_tsmaster_cmd_set_can_signal = dll.rpc_tsmaster_cmd_set_can_signal
4947
+ rpc_tsmaster_cmd_set_can_signal.restype = s32
4948
+ rpc_tsmaster_cmd_set_can_signal.argtypes = [size_t,pchar,double]
4949
+
4950
+ #arg[0] AHandle
4951
+ #arg[1] ASgnAddress
4952
+ #arg[2] AValue
4953
+ rpc_tsmaster_cmd_get_can_signal = dll.rpc_tsmaster_cmd_get_can_signal
4954
+ rpc_tsmaster_cmd_get_can_signal.restype = s32
4955
+ rpc_tsmaster_cmd_get_can_signal.argtypes = [size_t,pchar,pdouble]
4956
+
4957
+ #arg[0] AHandle
4958
+ #arg[1] ASgnAddress
4959
+ #arg[2] AValue
4960
+ rpc_tsmaster_cmd_get_lin_signal = dll.rpc_tsmaster_cmd_get_lin_signal
4961
+ rpc_tsmaster_cmd_get_lin_signal.restype = s32
4962
+ rpc_tsmaster_cmd_get_lin_signal.argtypes = [size_t,pchar,pdouble]
4963
+
4964
+ #arg[0] AHandle
4965
+ #arg[1] ASgnAddress
4966
+ #arg[2] AValue
4967
+ rpc_tsmaster_cmd_set_lin_signal = dll.rpc_tsmaster_cmd_set_lin_signal
4968
+ rpc_tsmaster_cmd_set_lin_signal.restype = s32
4969
+ rpc_tsmaster_cmd_set_lin_signal.argtypes = [size_t,pchar,double]
4970
+
4971
+ #arg[0] AHandle
4972
+ #arg[1] ASgnAddress
4973
+ #arg[2] AValue
4974
+ rpc_tsmaster_cmd_set_flexray_signal = dll.rpc_tsmaster_cmd_set_flexray_signal
4975
+ rpc_tsmaster_cmd_set_flexray_signal.restype = s32
4976
+ rpc_tsmaster_cmd_set_flexray_signal.argtypes = [size_t,pchar,double]
4977
+
4978
+ #arg[0] AHandle
4979
+ #arg[1] ASgnAddress
4980
+ #arg[2] AValue
4981
+ rpc_tsmaster_cmd_get_flexray_signal = dll.rpc_tsmaster_cmd_get_flexray_signal
4982
+ rpc_tsmaster_cmd_get_flexray_signal.restype = s32
4983
+ rpc_tsmaster_cmd_get_flexray_signal.argtypes = [size_t,pchar,pdouble]
4984
+
4985
+ #arg[0] AHandle
4986
+ #arg[1] AConstName
4987
+ #arg[2] AValue
4988
+ rpc_tsmaster_cmd_get_constant = dll.rpc_tsmaster_cmd_get_constant
4989
+ rpc_tsmaster_cmd_get_constant.restype = s32
4990
+ rpc_tsmaster_cmd_get_constant.argtypes = [size_t,pchar,pdouble]
4991
+
4992
+ #arg[0] AHandle
4993
+ #arg[1] AIsRunning
4994
+ rpc_tsmaster_is_simulation_running = dll.rpc_tsmaster_is_simulation_running
4995
+ rpc_tsmaster_is_simulation_running.restype = s32
4996
+ rpc_tsmaster_is_simulation_running.argtypes = [size_t,pbool]
4997
+
4998
+ #arg[0] AHandle
4999
+ #arg[1] AAPIName
5000
+ #arg[2] AArgCount
5001
+ #arg[3] AArgCapacity
5002
+ #arg[4] AArgs
5003
+ rpc_tsmaster_call_system_api = dll.rpc_tsmaster_call_system_api
5004
+ rpc_tsmaster_call_system_api.restype = s32
5005
+ rpc_tsmaster_call_system_api.argtypes = [size_t,pchar,s32,s32,ppchar]
5006
+
5007
+ #arg[0] AHandle
5008
+ #arg[1] AAPIName
5009
+ #arg[2] AArgCount
5010
+ #arg[3] AArgCapacity
5011
+ #arg[4] AArgs
5012
+ rpc_tsmaster_call_library_api = dll.rpc_tsmaster_call_library_api
5013
+ rpc_tsmaster_call_library_api.restype = s32
5014
+ rpc_tsmaster_call_library_api.argtypes = [size_t,pchar,s32,s32,ppchar]
5015
+
5016
+ #arg[0] ADirectory
5017
+ get_tsmaster_binary_location = dll.get_tsmaster_binary_location
5018
+ get_tsmaster_binary_location.restype = s32
5019
+ get_tsmaster_binary_location.argtypes = [ppchar]
5020
+
5021
+ #arg[0] ATSMasterAppNames
5022
+ get_active_application_list = dll.get_active_application_list
5023
+ get_active_application_list.restype = s32
5024
+ get_active_application_list.argtypes = [ppchar]
5025
+
@@ -91,6 +91,14 @@ TSSocketReceiveEventV2 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pu8,s32)
91
91
  # Arg[0] AObj
92
92
  # Arg[1] ASocket
93
93
  # Arg[2] AResult
94
+ # Arg[3] ADstEndPoint
95
+ # Arg[4] ASrcEndPoint
96
+ # Arg[5] AData
97
+ # Arg[6] ASize
98
+ TSSocketReceiveEventV3 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pchar,pu8,s32)
99
+ # Arg[0] AObj
100
+ # Arg[1] ASocket
101
+ # Arg[2] AResult
94
102
  # Arg[3] AData
95
103
  # Arg[4] ASize
96
104
  TSSocketTransmitEvent = WINFUNCTYPE(None,ps32,s32,s32,pu8,s32)
@@ -121,6 +129,14 @@ TSSocketReceiveEventV2_Win32 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pu8,s32)
121
129
  # Arg[0] AObj
122
130
  # Arg[1] ASocket
123
131
  # Arg[2] AResult
132
+ # Arg[3] ADstEndPoint
133
+ # Arg[4] ASrcEndPoint
134
+ # Arg[5] AData
135
+ # Arg[6] ASize
136
+ TSSocketReceiveEventV3_Win32 = WINFUNCTYPE(None,ps32,s32,s32,pchar,pchar,pu8,s32)
137
+ # Arg[0] AObj
138
+ # Arg[1] ASocket
139
+ # Arg[2] AResult
124
140
  # Arg[3] AData
125
141
  # Arg[4] ASize
126
142
  TSSocketTransmitEvent_Win32 = WINFUNCTYPE(None,ps32,s32,s32,pu8,s32)
@@ -24,7 +24,8 @@ class _TLIBBusToolDeviceType(CEnum):
24
24
  CANABLE_USB_DEVICE = 9
25
25
  TS_WIRELESS_OBD = 10
26
26
  TS_USB_DEVICE_EX = 11
27
- BUS_DEV_TYPE_COUNT = 12
27
+ IXXAT_USB_DEVICE = 12
28
+ BUS_DEV_TYPE_COUNT = 13
28
29
  TLIBBusToolDeviceType = c_int32
29
30
  PLIBBusToolDeviceType = ps32
30
31
 
@@ -41,6 +42,7 @@ class _TSignalType(CEnum):
41
42
  stLINSignal = 1
42
43
  stSystemVar = 2
43
44
  stFlexRay = 3
45
+ stEthernet = 4
44
46
  TSignalType = c_int32
45
47
  PSignalType = ps32
46
48
 
@@ -587,10 +587,11 @@ PLIBFlexRayControllerParameters = POINTER(TLIBFlexRayControllerParameters)
587
587
 
588
588
  class TLIBTrigger_def(Structure):
589
589
  _pack_ = 1
590
- _fields_ =[('frame_idx',u8),
591
- ('slot_id',u8),
590
+ _fields_ =[('slot_id',u16),
591
+ ('frame_idx',u8),
592
592
  ('cycle_code',u8),
593
593
  ('config_byte',u8),
594
+ ('rev',u8),
594
595
  ]
595
596
  PLIBTrigger_def = POINTER(TLIBTrigger_def)
596
597
 
@@ -874,6 +875,14 @@ class Tts_fd_set(Structure):
874
875
  ]
875
876
  Pts_fd_set = POINTER(Tts_fd_set)
876
877
 
878
+ class Tts_pollfd(Structure):
879
+ _pack_ = 1
880
+ _fields_ =[('fd',s32),
881
+ ('events',s16),
882
+ ('revents',s16),
883
+ ]
884
+ Pts_pollfd = POINTER(Tts_pollfd)
885
+
877
886
  class Tts_msghdr(Structure):
878
887
  _pack_ = 1
879
888
  _fields_ =[('msg_name',ps32),
@@ -886,11 +895,18 @@ class Tts_msghdr(Structure):
886
895
  ]
887
896
  Pts_msghdr = POINTER(Tts_msghdr)
888
897
 
889
- class Tts_pollfd(Structure):
898
+ class Tts_cmsghdr(Structure):
890
899
  _pack_ = 1
891
- _fields_ =[('fd',s32),
892
- ('events',s16),
893
- ('revents',s16),
900
+ _fields_ =[('cmsg_len',u32),
901
+ ('cmsg_level',s32),
902
+ ('cmsg_type',s32),
894
903
  ]
895
- Pts_pollfd = POINTER(Tts_pollfd)
904
+ Pts_cmsghdr = POINTER(Tts_cmsghdr)
905
+
906
+ class Tts_in_pktinfo(Structure):
907
+ _pack_ = 1
908
+ _fields_ =[('ipi_ifindex',u32),
909
+ ('ipi_addr',Ts_in_addr),
910
+ ]
911
+ Pts_in_pktinfo = POINTER(Tts_in_pktinfo)
896
912
 
@@ -0,0 +1,2 @@
1
+ from .TSAPI import *
2
+ __version__ = 'v2024.6.5.1124'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: TSMasterAPI
3
- Version: 2.3.3
3
+ Version: 2024.6.5.1124
4
4
  Summary: Use TSMaster hardware
5
5
  Home-page: UNKNOWN
6
6
  Author: seven
@@ -7,13 +7,13 @@ FilePath: \VSCode_Pro\Python_Pro\TSMasterApi\setup.py
7
7
  '''
8
8
  from distutils.core import setup
9
9
  from setuptools import find_packages
10
+ from TSMasterAPI import __version__
10
11
 
11
12
  with open("README.rst", "r",encoding="utf-8") as f:
12
13
  long_description = f.read()
13
-
14
14
  #
15
15
  setup(name='TSMasterAPI', # 包名
16
- version='2.3.3', # 版本号
16
+ version=__version__, # 版本号
17
17
  description='Use TSMaster hardware',
18
18
  long_description=long_description,
19
19
  author='seven',
@@ -1 +0,0 @@
1
- from .TSAPI import *