|
@@ -3,7 +3,11 @@
|
|
|
|
|
|
#include "stdafx.h"
|
|
#include "stdafx.h"
|
|
#include "framework.h"
|
|
#include "framework.h"
|
|
|
|
+#ifndef _PYD_
|
|
#include "Chroma22293.h"
|
|
#include "Chroma22293.h"
|
|
|
|
+#else
|
|
|
|
+#include "Python.h"
|
|
|
|
+#endif
|
|
|
|
|
|
#ifdef _DEBUG
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#define new DEBUG_NEW
|
|
@@ -12,6 +16,13 @@
|
|
#define READ_LEN 8912
|
|
#define READ_LEN 8912
|
|
// 唯一的应用程序对象
|
|
// 唯一的应用程序对象
|
|
|
|
|
|
|
|
+//////////////////////////////////////////////////////////////////////////
|
|
|
|
+// 全局变量;
|
|
|
|
+std::string g_strData;
|
|
|
|
+CSynSerial g_SynSerial;
|
|
|
|
+DoException g_funExp = NULL;
|
|
|
|
+
|
|
|
|
+#ifndef _PYD_
|
|
CWinApp theApp;
|
|
CWinApp theApp;
|
|
|
|
|
|
using namespace std;
|
|
using namespace std;
|
|
@@ -54,7 +65,7 @@ int main()
|
|
if (SetBlueOFF())
|
|
if (SetBlueOFF())
|
|
printf("SetBlueOFF成功\n");
|
|
printf("SetBlueOFF成功\n");
|
|
|
|
|
|
- if (SetBuleON())
|
|
|
|
|
|
+ if (SetBlueON())
|
|
printf("SetBuleON成功\n");
|
|
printf("SetBuleON成功\n");
|
|
|
|
|
|
if (SetGreenOFF())
|
|
if (SetGreenOFF())
|
|
@@ -92,10 +103,7 @@ int main()
|
|
}
|
|
}
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
-// 全局变量;
|
|
|
|
-std::string g_strData;
|
|
|
|
-CSynSerial g_SynSerial;
|
|
|
|
-
|
|
|
|
|
|
+// C接口;
|
|
CHROMA22293_API BOOL OpenDevice(BYTE byCommPort, DWORD dwBaudRate, BYTE bySize, BYTE byParity, BYTE byStopBits)
|
|
CHROMA22293_API BOOL OpenDevice(BYTE byCommPort, DWORD dwBaudRate, BYTE bySize, BYTE byParity, BYTE byStopBits)
|
|
{
|
|
{
|
|
if (g_SynSerial.IsOpen())
|
|
if (g_SynSerial.IsOpen())
|
|
@@ -298,7 +306,7 @@ CHROMA22293_API BOOL SetBlueOFF()
|
|
return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
|
|
return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
|
|
}
|
|
}
|
|
|
|
|
|
-CHROMA22293_API BOOL SetBuleON()
|
|
|
|
|
|
+CHROMA22293_API BOOL SetBlueON()
|
|
{
|
|
{
|
|
std::string data = "b on;\r";
|
|
std::string data = "b on;\r";
|
|
if (!g_SynSerial.IsOpen())
|
|
if (!g_SynSerial.IsOpen())
|
|
@@ -480,7 +488,417 @@ CHROMA22293_API BOOL SetKeyBoardUnLock()
|
|
return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
|
|
return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
|
|
}
|
|
}
|
|
|
|
|
|
-CHROMA22293_API void SetCallBack()
|
|
|
|
|
|
+CHROMA22293_API void SetExceptionCallBack(DoException funExp)
|
|
|
|
+{
|
|
|
|
+ g_funExp = funExp;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#else
|
|
|
|
+static PyObject* OpenDevice(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ // 应用程序路径;
|
|
|
|
+ unsigned int port, baudrate, datasize, parity, stopbite;
|
|
|
|
+ if (!PyArg_ParseTuple(args, "IIIII", &port, &baudrate, &datasize, &parity, &stopbite))
|
|
|
|
+ return NULL;
|
|
|
|
+
|
|
|
|
+ if (g_SynSerial.IsOpen())
|
|
|
|
+ {
|
|
|
|
+ g_SynSerial.CloseSerialPort();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 返回进程Id;
|
|
|
|
+ return Py_BuildValue("b", g_SynSerial.OpenSerialPort(port, baudrate, datasize, parity, stopbite, 0, 0));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* CloseDevice(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ g_SynSerial.CloseSerialPort();
|
|
|
|
+ return Py_BuildValue(""); // 返回None;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* GetBufStatus(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "dummy;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* GetDeviceSoft(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "report ver;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("s", _T(""));
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("s", _T(""));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("s", _T(""));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ g_strData = (char*)byData;
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("s", g_strData.c_str());
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* GetDeviceName(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "report model;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("s", _T(""));
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("s", _T(""));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("s", _T(""));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ g_strData = (char*)byData;
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("s", g_strData.c_str());
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetPattern(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ unsigned int param;
|
|
|
|
+ if (!PyArg_ParseTuple(args, "I", ¶m))
|
|
|
|
+ return NULL;
|
|
|
|
+
|
|
|
|
+ char data[128] = { 0 };
|
|
|
|
+ _stprintf_s(data, _T("run ptn %ld;\r"), param);
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data, sizeof(data));
|
|
|
|
+ if (dwData != sizeof(data))
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetTiming(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ unsigned int param;
|
|
|
|
+ if (!PyArg_ParseTuple(args, "I", ¶m))
|
|
|
|
+ return NULL;
|
|
|
|
+
|
|
|
|
+ char data[128] = { 0 };
|
|
|
|
+ _stprintf_s(data, _T("run tim %ld;\r"), param);
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data, sizeof(data));
|
|
|
|
+ if (dwData != sizeof(data))
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetTimingPattern(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ unsigned int param1, param2;
|
|
|
|
+ if (!PyArg_ParseTuple(args, "II", ¶m1, ¶m2))
|
|
|
|
+ return NULL;
|
|
|
|
+
|
|
|
|
+ char data[128] = { 0 };
|
|
|
|
+ _stprintf_s(data, _T("run tim %ld;run tim %ld;\r"), param1, param2);
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data, strlen(data));
|
|
|
|
+ if (dwData != strlen(data))
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\nok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetBlueOFF(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "b off;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetBlueON(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "b on;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetGreenOFF(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "g off;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetGreenON(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "g on;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetRedOFF(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "r off;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetRedON(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "r on;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetKeyBoardLock(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "kb lock on;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static PyObject* SetKeyBoardUnLock(PyObject* self, PyObject* args)
|
|
|
|
+{
|
|
|
|
+ std::string data = "kb lock off;\r";
|
|
|
|
+ if (!g_SynSerial.IsOpen())
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+
|
|
|
|
+ // 写串口数据;
|
|
|
|
+ DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
|
|
|
|
+ if (dwData != data.size())
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 读取串口数据;
|
|
|
|
+ byte byData[READ_LEN] = { 0 };
|
|
|
|
+ dwData = g_SynSerial.ReadComm(byData, READ_LEN);
|
|
|
|
+ if (dwData == 0)
|
|
|
|
+ {
|
|
|
|
+ return Py_BuildValue("b", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Py_BuildValue("b", !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData));
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 描述方法,暴露给python的函数;
|
|
|
|
+static PyMethodDef Chroma22293_Methods[] = {
|
|
|
|
+ {"OpenDevice",OpenDevice,METH_VARARGS,"打开设备"},
|
|
|
|
+ {"CloseDevice", CloseDevice, METH_VARARGS, "关闭设备"},
|
|
|
|
+ {"GetBufStatus", GetBufStatus, METH_VARARGS, "BUF测试"},
|
|
|
|
+ {"GetDeviceSoft", GetDeviceSoft, METH_VARARGS, "设备版本"},
|
|
|
|
+ {"GetDeviceName", GetDeviceName, METH_VARARGS, "设备信息"},
|
|
|
|
+ {"SetPattern", SetPattern, METH_VARARGS, "设置Ptn"},
|
|
|
|
+ {"SetTiming", SetTiming, METH_VARARGS, "设置Tim"},
|
|
|
|
+ {"SetTimingPattern", SetTimingPattern, METH_VARARGS, "设置Ptn和Tim"},
|
|
|
|
+ {"SetBlueOFF", SetBlueOFF, METH_VARARGS, "关蓝"},
|
|
|
|
+ {"SetBlueON", SetBlueON, METH_VARARGS, "开蓝"},
|
|
|
|
+ {"SetGreenOFF", SetGreenOFF, METH_VARARGS, "关绿"},
|
|
|
|
+ {"SetGreenON", SetGreenON, METH_VARARGS, "开绿"},
|
|
|
|
+ {"SetRedOFF", SetRedOFF, METH_VARARGS, "关红"},
|
|
|
|
+ {"SetRedON", SetRedON, METH_VARARGS, "开红"},
|
|
|
|
+ {"SetKeyBoardLock", SetKeyBoardLock, METH_VARARGS, "锁键盘"},
|
|
|
|
+ {"SetKeyBoardUnLock", SetKeyBoardUnLock, METH_VARARGS, "解锁键盘"},
|
|
|
|
+ //{"SetCallBack", SetCallBack, METH_VARARGS, "设置回调"},// Pyd暂时未了解如何实现回调;
|
|
|
|
+ {NULL,NULL}
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 初始模块;//格式:init<模块名称>
|
|
|
|
+PyMODINIT_FUNC initChroma22293()
|
|
{
|
|
{
|
|
- return CHROMA22293_API void();
|
|
|
|
|
|
+ // 初始化pyd函数列表;
|
|
|
|
+ PyObject* m, * d;
|
|
|
|
+ m = Py_InitModule("Chroma22293", Chroma22293_Methods);
|
|
|
|
+ d = PyModule_GetDict(m);
|
|
}
|
|
}
|
|
|
|
+#endif
|