config.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. #ifndef CONFIG_H
  2. #define CONFIG_H
  3. #include <QString>
  4. #include <QObject>
  5. #include <QHash>
  6. #include <QVariantMap>
  7. #include "define.h"
  8. class config : public QObject
  9. {
  10. Q_OBJECT
  11. Q_PROPERTY(QString suserId READ suserId WRITE setSuserId)
  12. Q_PROPERTY(QString sdevUuid READ sdevUuid WRITE setSdevUuid NOTIFY sdevUuidChanged)
  13. Q_PROPERTY(QString shttpHost READ shttpHost WRITE setShttpHost NOTIFY shttpHostChanged)
  14. Q_PROPERTY(int sloginTimeout READ sloginTimeout WRITE setSloginTimeout NOTIFY sloginTimeoutChanged)
  15. Q_PROPERTY(int slockCloseTimeout READ slockCloseTimeout WRITE setSlockCloseTimeout NOTIFY slockCloseTimeoutChanged)
  16. Q_PROPERTY(QString susername READ susername)
  17. Q_PROPERTY(QString srfidPort READ srfidPort WRITE setSrfidPort NOTIFY srfidPortChanged)
  18. Q_PROPERTY(QString slockPort READ slockPort WRITE setSlockPort NOTIFY slockPortChanged)
  19. Q_PROPERTY(quint16 srfidPower READ srfidPower WRITE setSrfidPower NOTIFY srfidPowerChanged)
  20. Q_PROPERTY(quint32 srfidWorkTime READ srfidWorkTime WRITE setSrfidWorkTime NOTIFY srfidWorkTimeChanged)
  21. Q_PROPERTY(QStringList sserialPortList READ sserialPortList)
  22. Q_PROPERTY(bool smaterialStock READ smaterialStock WRITE setSmaterialStock NOTIFY smaterialStockChanged)
  23. Q_PROPERTY(bool sfingerStat READ sfingerStat)
  24. Q_PROPERTY(bool sopenDoor READ sopenDoor)
  25. Q_PROPERTY(quint8 imaterworkstat READ imaterworkstat WRITE setimaterworkstat)
  26. Q_PROPERTY(bool blocktimeout READ blocktimeout WRITE setblocktimeout)
  27. Q_PROPERTY(QVariantMap smaterialTypePngList READ smaterialTypePngList)
  28. Q_PROPERTY(QVariantMap smaterialTypeCountList READ smaterialTypeCountList)
  29. Q_PROPERTY(QVariantMap smaterialTypeBorrowableNumberList READ smaterialTypeBorrowableNumberList)
  30. Q_PROPERTY(QVariantMap smaterialNameList READ smaterialNameList)
  31. Q_PROPERTY(QVariantMap smaterialTypeList READ smaterialTypeList)
  32. Q_PROPERTY(QVariantMap smaterialPictureList READ smaterialPictureList)
  33. Q_PROPERTY(QVariantMap smaterialLoanUserList READ smaterialLoanUserList)
  34. Q_PROPERTY(QVariantMap smaterialStatusList READ smaterialStatusList)
  35. Q_PROPERTY(QVariantMap smaterialLoanStateList READ smaterialLoanStateList)
  36. Q_PROPERTY(QList<QString> stakeMaterialList READ stakeMaterialList)
  37. Q_PROPERTY(QList<QString> sbackMaterialList READ sbackMaterialList)
  38. Q_PROPERTY(QList<QString> sbindedMaterialList READ sbindedMaterialList)
  39. Q_PROPERTY(QList<QString> sunbindMaterialList READ sunbindMaterialList)
  40. Q_PROPERTY(QList<QString> sbackElseMaterialList READ sbackElseMaterialList)
  41. Q_PROPERTY(QList<QString> stakeElseMaterialList READ stakeElseMaterialList)
  42. Q_PROPERTY(QVariantMap smaterialNameListElse READ smaterialNameListElse)
  43. Q_PROPERTY(QVariantMap smaterialPictureListElse READ smaterialPictureListElse)
  44. Q_PROPERTY(int scurrentPlanId READ scurrentPlanId WRITE setScurrentPlanId)
  45. Q_PROPERTY(QString schangeNumber READ schangeNumber)
  46. Q_PROPERTY(QString scheckNumber READ scheckNumber)
  47. Q_PROPERTY(QString srarNumber READ srarNumber)
  48. Q_PROPERTY(QStringList sbottomTypeId READ sbottomTypeId)
  49. Q_PROPERTY(QVariantMap sbottomTypeName READ sbottomTypeName)
  50. Q_PROPERTY(QVariantMap sbottomTypeIcon READ sbottomTypeIcon)
  51. Q_PROPERTY(QVariantMap sbottomTypeAll READ sbottomTypeAll)
  52. Q_PROPERTY(QVariantMap sbottomTypeBorrowable READ sbottomTypeBorrowable)
  53. public:
  54. config();
  55. void configWrite(void);
  56. bool configRead(void);
  57. QString getDeviceUUID(void);
  58. enum xmlType {
  59. XML_NULL = 0,
  60. XML_CONFIG,
  61. XML_DEVICE,
  62. XML_RFID,
  63. XML_LOCK,
  64. XML_SERVER,
  65. XML_PARAM,
  66. };
  67. Q_ENUM(xmlType)
  68. #ifdef Q_OS_WIN
  69. QString configfile = "config.xml";
  70. #else
  71. QString configpath = "/storage/emulated/0/Android/data/com.cabinet/";
  72. QString configfile = configpath + "config.xml";
  73. #endif
  74. bool devInit = false;
  75. QString devUuid = "CABINET_016";
  76. bool logfileStat = false;
  77. bool readBee = false;
  78. int heartTime = 60;
  79. int lockCloseTimeout = 10 * 60;
  80. bool rfidInit = false;
  81. bool lockInit = false;
  82. int currentPlanId = 0;
  83. #ifdef Q_OS_WIN
  84. QString rfidPort = "COM1";
  85. QString lockPort = "COM2";
  86. #else
  87. QString rfidPort = "/dev/ttyUSB1";
  88. QString lockPort = "/dev/ttyUSB2";
  89. #endif
  90. QStringList serialPortList;
  91. quint16 rfidPower = 1750; //发射接收功率0.01dB
  92. quint16 rfidSetTime = 1000; //天线切换稳定时间,单位:us
  93. quint32 rfidWorkTime = 10000; //同步读取标签时间,单位:ms
  94. quint16 rfidport = 0x00; //天线端口
  95. int rfidBaud = 115200;
  96. int lockBaud = 115200;
  97. QString changeNumber; // 物资更换数量
  98. QString checkNumber; // 物资检查数量
  99. QString rarNumber; // 物资取还数量
  100. QHash<QString, QString> bottomTypeName; // 物资类型名称
  101. QHash<QString, QString> bottomTypeIcon; // 物资类型图标
  102. QHash<QString, QString> bottomTypeAll; // 物资类型总数量
  103. QHash<QString, QString> bottomTypeBorrowable; // 物资类型可借数量
  104. QString httpHost = "120.27.232.27:9190";
  105. QString usernameLogin_url = "/prod-api/login"; //用户名登陆接口
  106. QString cardLogin_url = "/prod-api/iscs/card/loginByCard"; //卡号登陆接口
  107. QString logout_url = "/prod-api/logout"; //登出接口
  108. QString getMaterial_url = "/prod-api/iscs/hardware/material-api/selectMaterialsByRfidList"; //获取物资信息
  109. QString userMaterial_url = "/prod-api/iscs/hardware/material-api/selectMaterialsByCabinetId"; //用户登录获取物资信息
  110. QString openCabinet_url = "/prod-api/iscs/hardware/material-api/insertCabinetOpenRecord"; //打开物资柜
  111. QString closeCabinet_url = "/prod-api/iscs/hardware/material-api/updateCabinetClose"; //关闭物资柜
  112. QString updateMaterial_url = "/prod-api/iscs/materials/updateIsMaterialById"; //更新物资状态
  113. QString addfinger_url = "/prod-api/system/user/characteristic/insertUserFingerprintDat"; //录入指纹
  114. QString fingerLogin_url = "/prod-api/loginByFingerprintDat"; //指纹登陆
  115. QString instructionsGet_url = "/prod-api/iscs/instructions/getIsMaterialsInstructionsPage"; // 获取物资使用说明
  116. QString getMaterialCheckPlan_url = "/prod-api/iscs/hardware/material-api/getLastCheckPlanByCabinetCode"; // 获取物资检查计划
  117. QString getMaterialCheckForm_url = "/prod-api/iscs/hardware/material-api/getCheckMaterialsByCabinetCode"; // 获取物资检查列表
  118. QString postSaveForm_url = "/prod-api/iscs/hardware/material-api/insertCheckRecord"; // 提交物资检查列表
  119. QString postCheckSign_url = "/prod-api/iscs/hardware/material-api/insertSign"; // 提交签名检查
  120. QString postSubmit_url = "/prod-api/iscs/hardware/material-api/insertSubmitPlan"; // 提交检查计划
  121. QString getMaterialPropList_url = "/prod-api/iscs/propvalue/getIsMaterialsPropertyValuePage"; // 获取物资属性列表
  122. QString getMaterialTypeList_url = "/prod-api/iscs/type/getIsMaterialsTypePage"; // 获取物资类型列表
  123. QString getMaterialInfoList_url = "/prod-api/iscs/materials/getIsMaterialsPage"; // 获取物资信息列表
  124. QString getExMaterialInfoList_url = "/prod-api/iscs/hardware/material-api/selectExMaterialTypeById"; // 获取异常物资信息列表
  125. QString postMaterialReplace_url = "/prod-api/iscs/hardware/material-api/insertCheckedRecord"; // 物资手动更换提交
  126. QString postMaterialReplaceAuto_url = "/prod-api/iscs/hardware/material-api/insertAutoChange"; // 物资自动更换提交
  127. QString postInsertCabinetOpenTimeout_url = "/prod-api/iscs/hardware/material-api/insertCabinetOpenTimeout"; // 新增物资柜关门异常
  128. QString postUpdateCabinetOpenTimeout_url = "/prod-api/iscs/hardware/material-api/updateCabinetOpenTimeout"; // 更新物资柜关门异常
  129. QString getIsMaterialsLoanExceptionPage_url = "/prod-api/iscs/exception/getIsMaterialsLoanExceptionPage"; // 获取当前物资柜物资错放异常
  130. QString getInfo_url = "/getInfo"; // 获取当前用户信息
  131. QString getSysUserCharacteristicPage_url = "/system/user/characteristic/getSysUserCharacteristicPage"; //获取当前用户特征
  132. QString insertUserFace_url = "/system/user/characteristic/insertUserFace"; // 新增面部信息
  133. QString loginByFace_url = "/loginByArcFace"; // 人脸登录
  134. QString ip = "0.0.0.0";
  135. QString mask = "255.255.255.0";
  136. QString dns = "0.0.0.0";
  137. int loginTimeout = 99;
  138. bool openDoor = false;
  139. // 物资工作状态 0.物资存取 1.物资自动更换 2.物资手动更换 3.异常处理 4.物资检查
  140. uint8_t materworkstat = 0;
  141. bool locktimeout = false; // 超时标志
  142. qint64 lastLockTimeEpoch = 0; // 开锁时间戳 (关锁为0,开锁为当前时间戳)
  143. bool materialStock = false;
  144. QString userId;
  145. QString username;
  146. QString nickName;
  147. QString cardNo;
  148. QString devId;
  149. QString devName;
  150. bool fingerStat = false;
  151. QHash<QString, QString> materialNameList;
  152. QHash<QString, QString> materialTypeList;
  153. QHash<QString, QString> materialPictureList;
  154. QHash<QString, QString> materialLoanUserList;
  155. QHash<QString, int> materialLoanStateList;
  156. QHash<QString, QString> materialStatusList;
  157. QHash<QString, QString> materialNameListElse;
  158. QHash<QString, QString> materialPictureListElse;
  159. QList<QString> backMaterialList;
  160. QList<QString> takeMaterialList;
  161. QList<QString> bindedMaterialList; // 绑定
  162. QList<QString> unbindMaterialList; // 解绑
  163. QList<QString> backElseMaterialList;
  164. QList<QString> takeElseMaterialList;
  165. QList<QString> elseMaterialList; // 不属于当前柜子的物资
  166. QHash<QString, QString> materialTypePngList;
  167. QHash<QString, int> materialTypeCountList;
  168. QHash<QString, int> materialTypeBorrowableNumberList;
  169. QString suserId()
  170. {
  171. return userId;
  172. }
  173. void setSuserId(const QString& suserId)
  174. {
  175. userId = suserId;
  176. }
  177. QString sdevUuid() const {
  178. return devUuid;
  179. }
  180. void setSdevUuid(const QString &sdevUuid) {
  181. if (sdevUuid == devUuid)
  182. return;
  183. devUuid = sdevUuid;
  184. emit sdevUuidChanged();
  185. }
  186. QString shttpHost() const {
  187. return httpHost;
  188. }
  189. void setShttpHost(const QString &shttpHost) {
  190. if (shttpHost == httpHost)
  191. return;
  192. httpHost = shttpHost;
  193. emit shttpHostChanged();
  194. }
  195. int sloginTimeout() const {
  196. return loginTimeout;
  197. }
  198. void setSloginTimeout(const int &sloginTimeout) {
  199. if (sloginTimeout == loginTimeout)
  200. return;
  201. loginTimeout = sloginTimeout;
  202. emit sloginTimeoutChanged();
  203. }
  204. // Q_PROPERTY(int slockCloseTimeout READ slockCloseTimeout WRITE setSlockCloseTimeout NOTIFY slockCloseTimeoutChanged)
  205. int slockCloseTimeout() const {
  206. return lockCloseTimeout;
  207. }
  208. void setSlockCloseTimeout(const int &slockCloseTimeout) {
  209. if (slockCloseTimeout == lockCloseTimeout)
  210. return;
  211. lockCloseTimeout = slockCloseTimeout;
  212. emit slockCloseTimeoutChanged();
  213. }
  214. QString susername() const {
  215. return username;
  216. }
  217. QStringList sserialPortList() const {
  218. return serialPortList;
  219. }
  220. QString slockPort() const {
  221. return lockPort;
  222. }
  223. void setSlockPort(const QString &slockPort) {
  224. if (slockPort == lockPort)
  225. return;
  226. lockPort = slockPort;
  227. emit slockPortChanged();
  228. }
  229. QString srfidPort() const {
  230. return rfidPort;
  231. }
  232. void setSrfidPort(const QString &srfidPort) {
  233. if (srfidPort == rfidPort)
  234. return;
  235. rfidPort = srfidPort;
  236. emit srfidPortChanged();
  237. }
  238. quint16 srfidPower() const {
  239. return rfidPower;
  240. }
  241. void setSrfidPower(const int &srfidPower) {
  242. if (srfidPower == rfidPower)
  243. return;
  244. rfidPower = srfidPower;
  245. emit srfidPowerChanged();
  246. }
  247. quint32 srfidWorkTime() const {
  248. return rfidWorkTime;
  249. }
  250. void setSrfidWorkTime(const int &srfidWorkTime) {
  251. if (srfidWorkTime == rfidWorkTime)
  252. return;
  253. rfidWorkTime = srfidWorkTime;
  254. emit srfidWorkTimeChanged();
  255. }
  256. bool sopenDoor() const {
  257. return openDoor;
  258. }
  259. bool sfingerStat() const {
  260. return fingerStat;
  261. }
  262. quint8 imaterworkstat()
  263. {
  264. return materworkstat;
  265. }
  266. void setimaterworkstat(quint8 imaterworkstat)
  267. {
  268. materworkstat = imaterworkstat;
  269. }
  270. bool blocktimeout()
  271. {
  272. return locktimeout;
  273. }
  274. void setblocktimeout(bool bLockTimeout)
  275. {
  276. locktimeout = bLockTimeout;
  277. }
  278. bool smaterialStock() const {
  279. return materialStock;
  280. }
  281. void setSmaterialStock(const bool &smaterialStock) {
  282. if (smaterialStock == materialStock)
  283. return;
  284. materialStock = smaterialStock;
  285. emit smaterialStockChanged();
  286. }
  287. QVariantMap smaterialTypePngList() const {
  288. QVariantMap map;
  289. for (auto it = materialTypePngList.begin(); it != materialTypePngList.end(); ++it) {
  290. map.insert(it.key(), it.value());
  291. }
  292. return map;
  293. }
  294. QVariantMap smaterialTypeCountList() const {
  295. QVariantMap map;
  296. for (auto it = materialTypeCountList.begin(); it != materialTypeCountList.end(); ++it) {
  297. map.insert(it.key(), it.value());
  298. }
  299. return map;
  300. }
  301. QVariantMap smaterialTypeBorrowableNumberList() const {
  302. QVariantMap map;
  303. for (auto it = materialTypeBorrowableNumberList.begin(); it != materialTypeBorrowableNumberList.end(); ++it) {
  304. map.insert(it.key(), it.value());
  305. }
  306. return map;
  307. }
  308. QVariantMap smaterialNameList() const {
  309. QVariantMap map;
  310. for (auto it = materialNameList.begin(); it != materialNameList.end(); ++it) {
  311. map.insert(it.key(), it.value());
  312. }
  313. return map;
  314. }
  315. QVariantMap smaterialTypeList() const {
  316. QVariantMap map;
  317. for (auto it = materialTypeList.begin(); it != materialTypeList.end(); ++it) {
  318. map.insert(it.key(), it.value());
  319. }
  320. return map;
  321. }
  322. QVariantMap smaterialPictureList() const {
  323. QVariantMap map;
  324. for (auto it = materialPictureList.begin(); it != materialPictureList.end(); ++it) {
  325. map.insert(it.key(), it.value());
  326. }
  327. return map;
  328. }
  329. QVariantMap smaterialLoanUserList() const {
  330. QVariantMap map;
  331. for (auto it = materialLoanUserList.begin(); it != materialLoanUserList.end(); ++it) {
  332. map.insert(it.key(), it.value());
  333. }
  334. return map;
  335. }
  336. QVariantMap smaterialStatusList() const {
  337. QVariantMap map;
  338. for (auto it = materialStatusList.begin(); it != materialStatusList.end(); ++it) {
  339. map.insert(it.key(), it.value());
  340. }
  341. return map;
  342. }
  343. QVariantMap smaterialLoanStateList() const {
  344. QVariantMap map;
  345. for (auto it = materialLoanStateList.begin(); it != materialLoanStateList.end(); ++it) {
  346. map.insert(it.key(), it.value());
  347. }
  348. return map;
  349. }
  350. QList<QString> sbackMaterialList() const {
  351. return backMaterialList;
  352. }
  353. QList<QString> stakeMaterialList() const {
  354. return takeMaterialList;
  355. }
  356. QList<QString> sbindedMaterialList() const {
  357. return bindedMaterialList;
  358. }
  359. QList<QString> sunbindMaterialList() const {
  360. return unbindMaterialList;
  361. }
  362. QList<QString> sbackElseMaterialList() const {
  363. return backElseMaterialList;
  364. }
  365. QList<QString> stakeElseMaterialList() const {
  366. return takeElseMaterialList;
  367. }
  368. QVariantMap smaterialNameListElse() const {
  369. QVariantMap map;
  370. for (auto it = materialNameListElse.begin(); it != materialNameListElse.end(); ++it) {
  371. map.insert(it.key(), it.value());
  372. }
  373. return map;
  374. }
  375. QVariantMap smaterialPictureListElse() const {
  376. QVariantMap map;
  377. for (auto it = materialPictureListElse.begin(); it != materialPictureListElse.end(); ++it) {
  378. map.insert(it.key(), it.value());
  379. }
  380. return map;
  381. }
  382. int scurrentPlanId()
  383. {
  384. return currentPlanId;
  385. }
  386. Q_INVOKABLE void setScurrentPlanId(int scurrentPlanId)
  387. {
  388. currentPlanId = scurrentPlanId;
  389. }
  390. QString schangeNumber()
  391. {
  392. return changeNumber;
  393. }
  394. QString scheckNumber()
  395. {
  396. return checkNumber;
  397. }
  398. QString srarNumber()
  399. {
  400. return rarNumber;
  401. }
  402. QStringList sbottomTypeId() const {
  403. return bottomTypeName.keys();
  404. }
  405. QVariantMap sbottomTypeName() const {
  406. QVariantMap map;
  407. for (auto it = bottomTypeName.begin(); it != bottomTypeName.end(); ++it) {
  408. map.insert(it.key(), it.value());
  409. }
  410. return map;
  411. }
  412. QVariantMap sbottomTypeIcon() const {
  413. QVariantMap map;
  414. for (auto it = bottomTypeIcon.begin(); it != bottomTypeIcon.end(); ++it) {
  415. map.insert(it.key(), it.value());
  416. }
  417. return map;
  418. }
  419. QVariantMap sbottomTypeAll() const {
  420. QVariantMap map;
  421. for (auto it = bottomTypeAll.begin(); it != bottomTypeAll.end(); ++it) {
  422. map.insert(it.key(), it.value());
  423. }
  424. return map;
  425. }
  426. QVariantMap sbottomTypeBorrowable() const {
  427. QVariantMap map;
  428. for (auto it = bottomTypeBorrowable.begin(); it != bottomTypeBorrowable.end(); ++it) {
  429. map.insert(it.key(), it.value());
  430. }
  431. return map;
  432. }
  433. private:
  434. void updateSerialPortList();
  435. void getDeviceValue(QString key, QString value);
  436. void getRfidValue(QString key, QString value);
  437. void getLockValue(QString key, QString value);
  438. void getParamValue(QString key, QString value);
  439. void getServerValue(QString key, QString value);
  440. signals:
  441. void sdevUuidChanged();
  442. void shttpHostChanged();
  443. void shttpPortChanged();
  444. void sloginTimeoutChanged();
  445. void slockCloseTimeoutChanged();
  446. void srfidPowerChanged();
  447. void srfidWorkTimeChanged();
  448. void smaterialStockChanged();
  449. void srfidPortChanged();
  450. void slockPortChanged();
  451. };
  452. #endif // CONFIG_H