diff --git a/ctp/header/ThostFtdcMdApi.h b/ctp/header/ThostFtdcMdApi.h index 60571b6..65034ad 100644 --- a/ctp/header/ThostFtdcMdApi.h +++ b/ctp/header/ThostFtdcMdApi.h @@ -106,20 +106,20 @@ class MD_API_EXPORT CThostFtdcMdApi { virtual const char *GetTradingDay() = 0; ///注册前置机网络地址 - ///@param pszFrontAddress:前置机网络地址。 + ///@param pszFrontAddress 前置机网络地址。 ///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:17001”。 ///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号。 virtual void RegisterFront(char *pszFrontAddress) = 0; ///注册名字服务器网络地址 - ///@param pszNsAddress:名字服务器网络地址。 + ///@param pszNsAddress 名字服务器网络地址。 ///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:12001”。 ///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”12001”代表服务器端口号。 ///@remark RegisterNameServer优先于RegisterFront virtual void RegisterNameServer(char *pszNsAddress) = 0; ///注册名字服务器用户信息 - ///@param pFensUserInfo:用户信息。 + ///@param pFensUserInfo 用户信息。 virtual void RegisterFensUserInfo(CThostFtdcFensUserInfoField *pFensUserInfo) = 0; ///注册回调接口 @@ -129,25 +129,21 @@ class MD_API_EXPORT CThostFtdcMdApi { ///订阅行情。 ///@param ppInstrumentID 合约ID ///@param nCount 要订阅/退订行情的合约个数 - ///@remark virtual int SubscribeMarketData(char *ppInstrumentID[], int nCount) = 0; ///退订行情。 ///@param ppInstrumentID 合约ID ///@param nCount 要订阅/退订行情的合约个数 - ///@remark virtual int UnSubscribeMarketData(char *ppInstrumentID[], int nCount) = 0; ///订阅询价。 ///@param ppInstrumentID 合约ID ///@param nCount 要订阅/退订行情的合约个数 - ///@remark virtual int SubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0; ///退订询价。 ///@param ppInstrumentID 合约ID ///@param nCount 要订阅/退订行情的合约个数 - ///@remark virtual int UnSubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0; ///用户登录请求 diff --git a/ctp/header/ThostFtdcTraderApi.h b/ctp/header/ThostFtdcTraderApi.h index b406a8d..736df0b 100644 --- a/ctp/header/ThostFtdcTraderApi.h +++ b/ctp/header/ThostFtdcTraderApi.h @@ -480,20 +480,20 @@ class TRADER_API_EXPORT CThostFtdcTraderApi { virtual const char *GetTradingDay() = 0; ///注册前置机网络地址 - ///@param pszFrontAddress:前置机网络地址。 + ///@param pszFrontAddress 前置机网络地址。 ///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:17001”。 ///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号。 virtual void RegisterFront(char *pszFrontAddress) = 0; ///注册名字服务器网络地址 - ///@param pszNsAddress:名字服务器网络地址。 + ///@param pszNsAddress 名字服务器网络地址。 ///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:12001”。 ///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”12001”代表服务器端口号。 ///@remark RegisterNameServer优先于RegisterFront virtual void RegisterNameServer(char *pszNsAddress) = 0; ///注册名字服务器用户信息 - ///@param pFensUserInfo:用户信息。 + ///@param pFensUserInfo 用户信息。 virtual void RegisterFensUserInfo(CThostFtdcFensUserInfoField *pFensUserInfo) = 0; ///注册回调接口 @@ -529,7 +529,7 @@ class TRADER_API_EXPORT CThostFtdcTraderApi { virtual int SubmitUserSystemInfo(CThostFtdcUserSystemInfoField *pUserSystemInfo) = 0; ///用户登录请求 - virtual int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID) = 0; + virtual int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID, TThostFtdcSystemInfoLenType length, TThostFtdcClientSystemInfoType systemInfo) = 0; ///登出请求 virtual int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID) = 0; diff --git a/ctp/mac/libs/comunicationkeylib.a b/ctp/mac/libs/comunicationkeylib.a new file mode 100644 index 0000000..7b1262f Binary files /dev/null and b/ctp/mac/libs/comunicationkeylib.a differ diff --git a/ctp/mac/libs/libcrypto.a b/ctp/mac/libs/libcrypto.a new file mode 100644 index 0000000..e96fb0a Binary files /dev/null and b/ctp/mac/libs/libcrypto.a differ diff --git a/ctp/mac/libs/libssl.a b/ctp/mac/libs/libssl.a new file mode 100644 index 0000000..ce82ebd Binary files /dev/null and b/ctp/mac/libs/libssl.a differ diff --git a/ctp/mac/libthostmduserapi_se.a b/ctp/mac/libthostmduserapi_se.a new file mode 100644 index 0000000..3b3a333 Binary files /dev/null and b/ctp/mac/libthostmduserapi_se.a differ diff --git a/ctp/mac/libthosttraderapi_se.a b/ctp/mac/libthosttraderapi_se.a new file mode 100644 index 0000000..5718e99 Binary files /dev/null and b/ctp/mac/libthosttraderapi_se.a differ diff --git a/ctp/version.txt b/ctp/version.txt index 29a19b2..b300220 100644 --- a/ctp/version.txt +++ b/ctp/version.txt @@ -1,3 +1,4 @@ V6.6.9 windows-64x -linux-64x \ No newline at end of file +linux-64x +max-arm/x86 \ No newline at end of file diff --git a/ctpwrapper/Trader.py b/ctpwrapper/Trader.py index 4095b23..1ddbcc3 100644 --- a/ctpwrapper/Trader.py +++ b/ctpwrapper/Trader.py @@ -169,11 +169,11 @@ def ReqAuthenticate(self, pReqAuthenticate: "ReqAuthenticateField", nRequestID: """ return super(TraderApiPy, self).ReqAuthenticate(pReqAuthenticate, nRequestID) - def ReqUserLogin(self, pReqUserLogin: "ReqUserLoginField", nRequestID: int) -> int: + def ReqUserLogin(self, pReqUserLogin: "ReqUserLoginField", nRequestID: int, length: int, systeminfo: str) -> int: """ 用户登录请求 """ - return super(TraderApiPy, self).ReqUserLogin(pReqUserLogin, nRequestID) + return super(TraderApiPy, self).ReqUserLogin(pReqUserLogin, nRequestID, length, systeminfo) def ReqUserAuthMethod(self, pReqUserAuthMethod: "ReqUserAuthMethod", nRequestID: int) -> int: """ diff --git a/ctpwrapper/TraderApi.pyx b/ctpwrapper/TraderApi.pyx index 77a6df7..afcd050 100644 --- a/ctpwrapper/TraderApi.pyx +++ b/ctpwrapper/TraderApi.pyx @@ -152,13 +152,13 @@ cdef class TraderApiWrapper: return result # 用户登录请求 - def ReqUserLogin(self, pReqUserLoginField, int nRequestID): + def ReqUserLogin(self, pReqUserLoginField, int nRequestID, int length, char *systemInfo): cdef int result cdef size_t address if self._spi is not NULL: address = ctypes.addressof(pReqUserLoginField) with nogil: - result = self._api.ReqUserLogin( address, nRequestID) + result = self._api.ReqUserLogin( address, nRequestID, length, systemInfo) return result # 登出请求 diff --git a/ctpwrapper/headers/cTraderApi.pxd b/ctpwrapper/headers/cTraderApi.pxd index b95d2af..d17eb3e 100644 --- a/ctpwrapper/headers/cTraderApi.pxd +++ b/ctpwrapper/headers/cTraderApi.pxd @@ -94,7 +94,7 @@ cdef extern from "ThostFtdcTraderApi.h": int SubmitUserSystemInfo(CThostFtdcUserSystemInfoField *pUserSystemInfo) nogil except + #用户登录请求 - int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID) nogil except + + int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID, TThostFtdcSystemInfoLenType length, TThostFtdcClientSystemInfoType systemInfo) nogil except + #登出请求 int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID) nogil except + diff --git a/makefile b/makefile index 5e9f696..56248a1 100644 --- a/makefile +++ b/makefile @@ -4,6 +4,11 @@ clean: find ./ctpwrapper/ -name "Md*.so" -delete find ./ctpwrapper/ -name "Trader*.so" -delete find ./ctpwrapper/ -name "*.cpp" -delete + find ./ -name "*.con" -delete + find ./ctpwrapper/ -name "error.dtd" -delete + find ./ctpwrapper/ -name "error.xml" -delete + find ./ctpwrapper/ -name "*.a" -delete + .PHONY: build-local diff --git a/setup.py b/setup.py index 6c39ab5..2ceb12d 100755 --- a/setup.py +++ b/setup.py @@ -55,19 +55,24 @@ def find_version(*file_paths): package_data.append("*.so") extra_compile_args = ["-Wall"] extra_link_args = ['-Wl,-rpath,$ORIGIN'] - elif sys.platform == "win32": lib_dir = os.path.join(ctp_dir, "win") extra_compile_args = ["/GR", "/EHsc"] # extra_link_args = [] package_data.append("*.dll") +elif sys.platform == "darwin": + lib_dir = os.path.join(ctp_dir, "mac") + # https://github.com/python/cpython/issues/97524 + extra_link_args = ['-Wl,-no_fixup_chains'] + package_data.append("*.a") + package_data.append("error.dtd") package_data.append("error.xml") shutil.copy2(header_dir + "/error.dtd", project_dir + "/error.dtd") shutil.copy2(header_dir + "/error.xml", project_dir + "/error.xml") -if sys.platform in ["linux", "win32"]: +if sys.platform in ["linux", "win32", "darwin"]: copy_tree(lib_dir, project_dir) common_args = { @@ -88,10 +93,10 @@ def find_version(*file_paths): sources=["ctpwrapper/TraderApi.pyx"], libraries=["thosttraderapi_se"], **common_args), - Cython_Extension(name="ctpwrapper.datacollect", - sources=["ctpwrapper/datacollect.pyx"], - libraries=["LinuxDataCollect"] if sys.platform == "linux" else ["WinDataCollect"], - **common_args) + # Cython_Extension(name="ctpwrapper.datacollect", + # sources=["ctpwrapper/datacollect.pyx"], + # libraries=["LinuxDataCollect"] if sys.platform == "linux" else ["WinDataCollect"], + # **common_args) ] setup( @@ -106,7 +111,7 @@ def find_version(*file_paths): author_email="365504029@qq.com", url="https://github.com/nooperpudd/ctpwrapper", include_dirs=[header_dir, cpp_header_dir], - platforms=["win32", "linux"], + platforms=["win32", "linux", "darwin"], packages=["ctpwrapper"], package_data={"": package_data}, python_requires=">=3.7",