123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906 |
- // Chroma22293.cpp : 定义 DLL 的导出函数。
- //
- #include "stdafx.h"
- #include "framework.h"
- #ifndef _PYD_
- #include "Chroma22293.h"
- #else
- #include "Python.h"
- #endif
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- #define READ_LEN 8912
- // 唯一的应用程序对象
- //////////////////////////////////////////////////////////////////////////
- // 全局变量;
- std::string g_strData;
- CSynSerial g_SynSerial;
- #ifndef _PYD_
- CWinApp theApp;
- using namespace std;
- int main()
- {
- int nRetCode = 0;
- HMODULE hModule = ::GetModuleHandle(nullptr);
- if (hModule != nullptr)
- {
- // 初始化 MFC 并在失败时显示错误
- if (!AfxWinInit(hModule, nullptr, ::GetCommandLine(), 0))
- {
- // TODO: 在此处为应用程序的行为编写代码。
- wprintf(L"错误: MFC 初始化失败\n");
- nRetCode = 1;
- }
- else
- {
- // TODO: 在此处为应用程序的行为编写代码。
- if ( OpenDevice(3,115200,8,0,1))
- {
- if (GetBufStatus())
- printf("成功BUF\n");
- GetDeviceSoft();
- GetDeviceName();
- if (SetPattern(11))
- printf("SetPattern成功\n");
- if (SetTiming(11))
- printf("SetTiming成功\n");
- if (SetTimingPattern(11, 11))
- printf("SetTimingPattern成功\n");
- if (SetBlueOFF())
- printf("SetBlueOFF成功\n");
- if (SetBlueON())
- printf("SetBuleON成功\n");
- if (SetGreenOFF())
- printf("SetGreenOFF成功\n");
- if (SetGreenON())
- printf("SetGreenON成功\n");
- if (SetRedOFF())
- printf("SetRedOFF成功\n");
- if (SetRedON())
- printf("SetRedON成功\n");
- if (SetKeyBoardLock())
- printf("SetKeyBoardLock成功\n");
- if (SetKeyBoardUnLock())
- printf("SetKeyBoardUnLock成功\n");
- }
- CloseDevice();
- }
- }
- else
- {
- // TODO: 更改错误代码以符合需要
- wprintf(L"错误: GetModuleHandle 失败\n");
- nRetCode = 1;
- }
- system("pause");
- return nRetCode;
- }
- //////////////////////////////////////////////////////////////////////////
- // C接口;
- DoException g_funExp = NULL;
- CHROMA22293_API BOOL OpenDevice(BYTE byCommPort, DWORD dwBaudRate, BYTE bySize, BYTE byParity, BYTE byStopBits)
- {
- if (g_SynSerial.IsOpen())
- {
- g_SynSerial.CloseSerialPort();
- }
- return g_SynSerial.OpenSerialPort(byCommPort, dwBaudRate, bySize, byParity, byStopBits, 0, 0);
- }
- CHROMA22293_API void CloseDevice()
- {
- g_SynSerial.CloseSerialPort();
- }
- CHROMA22293_API BOOL GetBufStatus()
- {
- std::string data = "dummy;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size() )
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = {0};
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if ( dwData == 0)
- {
- return FALSE;
- }
- printf("dumy=>%s\n",byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API LPCTSTR GetDeviceSoft()
- {
- std::string data = "report ver;\r";
- if (!g_SynSerial.IsOpen())
- return _T("");
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return _T("");
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return _T("");
- }
- g_strData = (char*)byData;
- printf("report ver=>%s\n", byData);
- return g_strData.c_str();
- }
- CHROMA22293_API LPCTSTR GetDeviceName()
- {
- std::string data = "report model;\r";
- if (!g_SynSerial.IsOpen())
- return _T("");
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return _T("");
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return _T("");
- }
- g_strData = (char*)byData;
- printf("report ver=>%s\n", byData);
- return g_strData.c_str();
- }
- CHROMA22293_API BOOL SetPattern(int param)
- {
- char data[128] = {0};
- _stprintf_s(data, _T("run ptn %ld;\r"), param);
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data, sizeof(data));
- if (dwData != sizeof(data))
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("run ptn %d;=>%s\n", param, byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetTiming(int param)
- {
- char data[128] = { 0 };
- _stprintf_s(data, _T("run tim %ld;\r"), param);
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data, sizeof(data));
- if (dwData != sizeof(data))
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("run ptn %d;=>%s\n", param, byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetTimingPattern(int param1, int param2)
- {
- char data[128] = { 0 };
- _stprintf_s(data, _T("run tim %ld;run tim %ld;\r"), param1, param2);
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data, strlen(data));
- if (dwData != strlen(data))
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("run ptn %d;run tim %d=>%s\n", param1, param2, byData);
- return !_mbsicmp((const byte*)"ok;\r\nok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetBlueOFF()
- {
- std::string data = "b off;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("b off=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetBlueON()
- {
- std::string data = "b on;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("b on=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetGreenOFF()
- {
- std::string data = "g off;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("g off=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetGreenON()
- {
- std::string data = "g on;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("g on=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetRedOFF()
- {
- std::string data = "r off;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("r off=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetRedON()
- {
- std::string data = "r on;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("r on=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetKeyBoardLock()
- {
- std::string data = "kb lock on;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("kb lock on=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- CHROMA22293_API BOOL SetKeyBoardUnLock()
- {
- std::string data = "kb lock off;\r";
- if (!g_SynSerial.IsOpen())
- return FALSE;
- // 写串口数据;
- DWORD dwData = g_SynSerial.WriteComm((byte*)data.data(), data.size());
- if (dwData != data.size())
- {
- return FALSE;
- }
- // 读取串口数据;
- byte byData[READ_LEN] = { 0 };
- dwData = g_SynSerial.ReadComm(byData, READ_LEN);
- if (dwData == 0)
- {
- return FALSE;
- }
- printf("kb lock off=>%s\n", byData);
- return !_mbsicmp((const byte*)"ok;\r\n", (const byte*)byData);
- }
- 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()
- {
- // 初始化pyd函数列表;
- PyObject* m, * d;
- m = Py_InitModule("Chroma22293", Chroma22293_Methods);
- d = PyModule_GetDict(m);
- }
- #endif
|