ConfigFile.cpp 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. #include "stdafx.h"
  2. #include "HCstruct.h"
  3. #include "HCNetSDK.h"
  4. extern IP_INFO selipinfo[MAXNUMBER];
  5. extern IP_INFO allipinfo[MAXIPNUMBER][MAXCHANNUM];
  6. extern SERVER_INFO serverinfo[MAXIPNUMBER];
  7. extern int iSurveillanceNumber;
  8. extern CLIENTPARAM ClientParam;
  9. extern char cWorkDir[256];
  10. ////////////////////////////////////////////////////////////////////
  11. void ReadSurveillanceConfig()
  12. {
  13. int i, j;
  14. char buf[256];
  15. DWORD dtemp;
  16. CStdioFile myFile;
  17. CString csFilename;
  18. csFilename.Format("%s\\ChannelCfg.dat", cWorkDir);
  19. if(myFile.Open(csFilename, CFile::modeRead) == FALSE)
  20. {
  21. myFile.Open(csFilename, CFile::modeCreate);
  22. return;
  23. }
  24. iSurveillanceNumber=0;
  25. while(myFile.ReadString(buf,256))
  26. {
  27. if(buf[1]==0x53)
  28. {
  29. myFile.ReadString(buf,256);//数组下标
  30. i=atoi(buf);
  31. myFile.ReadString(buf,256);
  32. serverinfo[i].m_csServerAdminName.Format("%s",buf);//用户名
  33. serverinfo[i].m_csServerAdminName.Format("%s",serverinfo[i].m_csServerAdminName.Left(serverinfo[i].m_csServerAdminName.GetLength()-2));
  34. myFile.ReadString(buf,256);
  35. serverinfo[i].m_csServerAdminPasswd.Format("%s",buf);//密码
  36. serverinfo[i].m_csServerAdminPasswd.Format("%s",serverinfo[i].m_csServerAdminPasswd.Left(serverinfo[i].m_csServerAdminPasswd.GetLength()-2));
  37. myFile.ReadString(buf,256);
  38. serverinfo[i].m_iServerChannelNumber=atoi(buf);//通道数
  39. myFile.ReadString(buf,256);
  40. serverinfo[i].m_csServerIP.Format("%s",buf);//ip地址
  41. serverinfo[i].m_csServerIP.Format("%s",serverinfo[i].m_csServerIP.Left(serverinfo[i].m_csServerIP.GetLength()-2));
  42. myFile.ReadString(buf,256);
  43. dtemp = atoi(buf) << 16;
  44. myFile.ReadString(buf,256);
  45. dtemp += atoi(buf);
  46. serverinfo[i].m_dwServerIPvalue=dtemp;
  47. myFile.ReadString(buf,256);
  48. serverinfo[i].m_csServerMultiIP.Format("%s",buf);//多播组地址
  49. serverinfo[i].m_csServerMultiIP.Format("%s",serverinfo[i].m_csServerMultiIP.Left(serverinfo[i].m_csServerMultiIP.GetLength()-2));
  50. myFile.ReadString(buf,256);
  51. dtemp = atoi(buf) << 16;
  52. myFile.ReadString(buf,256);
  53. dtemp += atoi(buf);
  54. serverinfo[i].m_dwServerMultiIPvalue=dtemp;
  55. myFile.ReadString(buf,256);
  56. serverinfo[i].m_csServerName.Format("%s",buf);//服务器名称
  57. serverinfo[i].m_csServerName.Format("%s",serverinfo[i].m_csServerName.Left(serverinfo[i].m_csServerName.GetLength()-2));
  58. myFile.ReadString(buf,256);
  59. serverinfo[i].m_wServerPort = atoi(buf); //端口号
  60. myFile.ReadString(buf,256);
  61. serverinfo[i].m_dwDevSoftVersion = atoi(buf); //设备软件版本
  62. }
  63. else
  64. {
  65. myFile.ReadString(buf,256);//数组下标
  66. i=atoi(buf);
  67. myFile.ReadString(buf,256);//数组下标
  68. j=atoi(buf);
  69. myFile.ReadString(buf,256);
  70. allipinfo[i][j].m_bChoosed=atoi(buf);
  71. myFile.ReadString(buf,256);
  72. allipinfo[i][j].m_dwAddress=atoi(buf);//解码器地址
  73. myFile.ReadString(buf,256);
  74. allipinfo[i][j].m_dwAlarmlevel=atoi(buf);//报警级别
  75. myFile.ReadString(buf,256);
  76. allipinfo[i][j].m_iChannel=atoi(buf);//通道号
  77. myFile.ReadString(buf,256);
  78. allipinfo[i][j].m_csIP.Format("%s",buf);//ip地址
  79. allipinfo[i][j].m_csIP.Format("%s",allipinfo[i][j].m_csIP.Left(allipinfo[i][j].m_csIP.GetLength()-2));
  80. myFile.ReadString(buf,256);
  81. dtemp = atoi(buf) << 16;
  82. myFile.ReadString(buf,256);
  83. dtemp += atoi(buf);
  84. allipinfo[i][j].m_dwIPvalue=dtemp;
  85. myFile.ReadString(buf,256);
  86. allipinfo[i][j].m_wJMQtype=atoi(buf);//解码器类型
  87. myFile.ReadString(buf,256);
  88. allipinfo[i][j].m_csMultiIP.Format("%s",buf);//多播组地址
  89. allipinfo[i][j].m_csMultiIP.Format("%s",allipinfo[i][j].m_csMultiIP.Left(allipinfo[i][j].m_csMultiIP.GetLength()-2));
  90. myFile.ReadString(buf,256);
  91. dtemp = atoi(buf) << 16;
  92. myFile.ReadString(buf,256);
  93. dtemp += atoi(buf);
  94. allipinfo[i][j].m_dwMultiIPvalue=dtemp;
  95. myFile.ReadString(buf,256);
  96. allipinfo[i][j].m_csChanName.Format("%s",buf);//通道名称
  97. allipinfo[i][j].m_csChanName.Format("%s",allipinfo[i][j].m_csChanName.Left(allipinfo[i][j].m_csChanName.GetLength()-2));
  98. myFile.ReadString(buf,256);
  99. allipinfo[i][j].m_dwProtocol=atoi(buf);//协议
  100. myFile.ReadString(buf,256);
  101. allipinfo[i][j].m_csPassword.Format("%s",buf);//通道密码
  102. allipinfo[i][j].m_csPassword.Format("%s",allipinfo[i][j].m_csPassword.Left(allipinfo[i][j].m_csPassword.GetLength()-2));
  103. myFile.ReadString(buf,256);
  104. allipinfo[i][j].m_csUser.Format("%s",buf);//通道用户
  105. allipinfo[i][j].m_csUser.Format("%s",allipinfo[i][j].m_csUser.Left(allipinfo[i][j].m_csUser.GetLength()-2));
  106. myFile.ReadString(buf,256);
  107. allipinfo[i][j].m_wServerport = atoi(buf);//端口号
  108. myFile.ReadString(buf, 256);
  109. allipinfo[i][j].m_iSequence = atoi(buf);
  110. /*
  111. if( (allipinfo[i][j].m_bChoosed) && (allipinfo[i][j].m_iSequence != -1) )
  112. {
  113. memcpy(&selipinfo[allipinfo[i][j].m_iSequence],&allipinfo[i][j],sizeof(IP_INFO));
  114. selipinfo[iSurveillanceNumber].m_iServerNum=i;
  115. selipinfo[iSurveillanceNumber].m_iChannelNum=j;
  116. iSurveillanceNumber++;
  117. }*/
  118. }
  119. }
  120. myFile.Close();
  121. }
  122. void WriteSurveillanceConfig()
  123. {
  124. int i, j;
  125. char buf[256];
  126. DWORD dtemp;
  127. CStdioFile myFile;
  128. CString csFilename;
  129. csFilename.Format("%s\\ChannelCfg.dat", cWorkDir);
  130. if(myFile.Open(csFilename, CFile::modeCreate|CFile::modeWrite) == FALSE)
  131. {
  132. return;
  133. }
  134. for(i = 0; i < MAXIPNUMBER; i++)
  135. {
  136. if (serverinfo[i].m_iServerChannelNumber != -1)
  137. {
  138. sprintf(buf,"$S\r\n");
  139. myFile.WriteString(buf);
  140. sprintf(buf,"%d\r\n",i);
  141. myFile.WriteString(buf);
  142. sprintf(buf,"%s\r\n",serverinfo[i].m_csServerAdminName); //用户名
  143. myFile.WriteString(buf);
  144. sprintf(buf,"%s\r\n",serverinfo[i].m_csServerAdminPasswd); //密码
  145. myFile.WriteString(buf);
  146. sprintf(buf,"%d\r\n",serverinfo[i].m_iServerChannelNumber); //通道数
  147. myFile.WriteString(buf);
  148. sprintf(buf,"%s\r\n",serverinfo[i].m_csServerIP); //ip地址
  149. myFile.WriteString(buf);
  150. dtemp=serverinfo[i].m_dwServerIPvalue;
  151. sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff));
  152. myFile.WriteString(buf);
  153. sprintf(buf,"%d\r\n",(dtemp& 0xffff));
  154. myFile.WriteString(buf);
  155. sprintf(buf,"%s\r\n",serverinfo[i].m_csServerMultiIP); //多播地址
  156. myFile.WriteString(buf);
  157. dtemp=serverinfo[i].m_dwServerMultiIPvalue;
  158. sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff));
  159. myFile.WriteString(buf);
  160. sprintf(buf,"%d\r\n",(dtemp& 0xffff));
  161. myFile.WriteString(buf);
  162. sprintf(buf,"%s\r\n",serverinfo[i].m_csServerName); //服务器名称
  163. myFile.WriteString(buf);
  164. sprintf(buf,"%d\r\n",serverinfo[i].m_wServerPort); //端口号
  165. myFile.WriteString(buf);
  166. sprintf(buf,"%d\r\n",serverinfo[i].m_dwDevSoftVersion); //设备软件版本
  167. myFile.WriteString(buf);
  168. for(j=0; j< MAXCHANNUM; j++)
  169. {
  170. if(allipinfo[i][j].m_iChannel != -1)
  171. {
  172. sprintf(buf,"$C\r\n");
  173. myFile.WriteString(buf);
  174. sprintf(buf,"%d\r\n",i);
  175. myFile.WriteString(buf);
  176. sprintf(buf,"%d\r\n",j);
  177. myFile.WriteString(buf);
  178. sprintf(buf,"%d\r\n",allipinfo[i][j].m_bChoosed); //选中监控标志
  179. myFile.WriteString(buf);
  180. sprintf(buf,"%d\r\n",allipinfo[i][j].m_dwAddress); //解码器地址
  181. myFile.WriteString(buf);
  182. sprintf(buf,"%d\r\n",allipinfo[i][j].m_dwAlarmlevel); //报警级别
  183. myFile.WriteString(buf);
  184. sprintf(buf,"%d\r\n",allipinfo[i][j].m_iChannel); //通道号
  185. myFile.WriteString(buf);
  186. sprintf(buf,"%s\r\n",allipinfo[i][j].m_csIP); //ip地址
  187. myFile.WriteString(buf);
  188. dtemp=allipinfo[i][j].m_dwIPvalue;
  189. sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff));
  190. myFile.WriteString(buf);
  191. sprintf(buf,"%d\r\n",(dtemp& 0xffff));
  192. myFile.WriteString(buf);
  193. sprintf(buf,"%d\r\n",allipinfo[i][j].m_wJMQtype); //解码器类型
  194. myFile.WriteString(buf);
  195. sprintf(buf,"%s\r\n",allipinfo[i][j].m_csMultiIP); //多播组地址
  196. myFile.WriteString(buf);
  197. dtemp=allipinfo[i][j].m_dwMultiIPvalue;
  198. sprintf(buf,"%d\r\n",((dtemp >> 16) & 0xffff));
  199. myFile.WriteString(buf);
  200. sprintf(buf,"%d\r\n",(dtemp& 0xffff));
  201. myFile.WriteString(buf);
  202. sprintf(buf,"%s\r\n",allipinfo[i][j].m_csChanName); //监控点名称
  203. myFile.WriteString(buf);
  204. sprintf(buf,"%d\r\n",allipinfo[i][j].m_dwProtocol); //协议
  205. myFile.WriteString(buf);
  206. sprintf(buf,"%s\r\n",allipinfo[i][j].m_csPassword); //通道密码
  207. myFile.WriteString(buf);
  208. sprintf(buf,"%s\r\n",allipinfo[i][j].m_csUser); //通道用户
  209. myFile.WriteString(buf);
  210. sprintf(buf,"%d\r\n",allipinfo[i][j].m_wServerport); //端口号
  211. myFile.WriteString(buf);
  212. sprintf(buf,"%d\r\n",allipinfo[i][j].m_iSequence); //播放顺序
  213. myFile.WriteString(buf);
  214. }
  215. }
  216. }
  217. }
  218. myFile.Close();
  219. }
  220. void ReadClientConfig()
  221. {
  222. int iTemp, iDay = 0, i, j;
  223. char buf[256];
  224. CStdioFile myFile;
  225. CString csFilename;
  226. csFilename.Format("%s\\ClientCfg.dat", cWorkDir);
  227. if(myFile.Open(csFilename, CFile::modeRead) == FALSE)
  228. {
  229. myFile.Open(csFilename, CFile::modeCreate);
  230. return;
  231. }
  232. if(!myFile.ReadString(buf,256))
  233. {
  234. myFile.Close();
  235. return;
  236. }
  237. iTemp = atoi(buf);
  238. if(iTemp < 5)
  239. ClientParam.m_iCycleTime = 5; //循环播放时间
  240. else
  241. ClientParam.m_iCycleTime = iTemp;
  242. myFile.ReadString(buf,256);
  243. iTemp = atoi(buf);
  244. if(iTemp == 1)
  245. ClientParam.m_bCyclePlay = TRUE; //是否循环播放
  246. else
  247. ClientParam.m_bCyclePlay = FALSE;
  248. myFile.ReadString(buf,256);
  249. iTemp = atoi(buf);
  250. if(iTemp == 1)
  251. ClientParam.m_bUseCard = TRUE; //是否使用解码卡
  252. else
  253. ClientParam.m_bUseCard = FALSE;
  254. myFile.ReadString(buf,256);
  255. iTemp = atoi(buf);
  256. if(iTemp == 1)
  257. ClientParam.m_bNTSC = TRUE; //解码卡视频制式
  258. else
  259. ClientParam.m_bNTSC = FALSE;
  260. myFile.ReadString(buf,256);
  261. iTemp = atoi(buf);
  262. if (iTemp > 60)
  263. ClientParam.m_iRecordFileInterval = 60; //录像文件打包时间
  264. else
  265. ClientParam.m_iRecordFileInterval = iTemp;
  266. myFile.ReadString(buf,256);
  267. iTemp = atoi(buf);
  268. if(iTemp == 1)
  269. ClientParam.m_bAutoRecord = TRUE; //是否自动录像
  270. else
  271. ClientParam.m_bAutoRecord = FALSE;
  272. myFile.ReadString(buf,256);
  273. iTemp = atoi(buf);
  274. if(iTemp == 1)
  275. ClientParam.m_bCycleRecord = TRUE; //是否循环录像
  276. else
  277. ClientParam.m_bCycleRecord = FALSE;
  278. myFile.ReadString(buf, 256);
  279. ClientParam.m_iStartRecordDriver = atoi(buf); //起始盘符
  280. myFile.ReadString(buf, 256);
  281. ClientParam.m_iEndRecordDriver = atoi(buf); //终止盘符
  282. myFile.ReadString(buf,256);
  283. ClientParam.m_csDownLoadPath.Format("%s", buf); //远程文件下载路径
  284. ClientParam.m_csDownLoadPath.Format("%s", ClientParam.m_csDownLoadPath.Left(ClientParam.m_csDownLoadPath.GetLength() - 2));
  285. myFile.ReadString(buf,256);
  286. ClientParam.m_csPictureSavePath.Format("%s", buf); //抓图文件保存路径
  287. ClientParam.m_csPictureSavePath.Format("%s", ClientParam.m_csPictureSavePath.Left(ClientParam.m_csPictureSavePath.GetLength() - 2));
  288. myFile.ReadString(buf,256);
  289. ClientParam.m_csLogSavePath.Format("%s", buf); //日志文件保存路径
  290. ClientParam.m_csLogSavePath.Format("%s", ClientParam.m_csLogSavePath.Left(ClientParam.m_csLogSavePath.GetLength() - 2));
  291. myFile.ReadString(buf,256);
  292. iTemp = atoi(buf);
  293. if(iTemp == 1)
  294. ClientParam.m_bCheckServerTime = TRUE; //是否启动硬盘录像机校时
  295. else
  296. ClientParam.m_bCheckServerTime = FALSE;
  297. long lTemp;
  298. myFile.ReadString(buf,256);
  299. lTemp = atol(buf);
  300. if(lTemp < 0)
  301. ClientParam.m_iCheckServerTime = 0; //硬盘录像机校时时间
  302. else
  303. ClientParam.m_iCheckServerTime = lTemp;
  304. while(myFile.ReadString(buf, 256))
  305. {
  306. ClientParam.m_ClientRecordTime[iDay][0].m_iStartTime = atoi(buf);
  307. myFile.ReadString(buf, 256);
  308. ClientParam.m_ClientRecordTime[iDay][0].m_iStopTime = atoi(buf);
  309. myFile.ReadString(buf, 256);
  310. ClientParam.m_ClientRecordTime[iDay][1].m_iStartTime = atoi(buf);
  311. myFile.ReadString(buf, 256);
  312. ClientParam.m_ClientRecordTime[iDay][1].m_iStopTime = atoi(buf);
  313. myFile.ReadString(buf, 256);
  314. ClientParam.m_ClientRecordTime[iDay][2].m_iStartTime = atoi(buf);
  315. myFile.ReadString(buf, 256);
  316. ClientParam.m_ClientRecordTime[iDay][2].m_iStopTime = atoi(buf);
  317. myFile.ReadString(buf, 256);
  318. ClientParam.m_ClientRecordTime[iDay][3].m_iStartTime = atoi(buf);
  319. myFile.ReadString(buf, 256);
  320. ClientParam.m_ClientRecordTime[iDay][3].m_iStopTime = atoi(buf);
  321. iDay++;
  322. }
  323. for(i = 0; i < 7; i++)
  324. {
  325. for(j = 0; j < 4; j++)
  326. {
  327. ClientParam.m_ClientRecordTime[i][j].m_iStartHour = ClientParam.m_ClientRecordTime[i][j].m_iStartTime / 100;
  328. ClientParam.m_ClientRecordTime[i][j].m_iStartMinute = ClientParam.m_ClientRecordTime[i][j].m_iStartTime % 100;
  329. ClientParam.m_ClientRecordTime[i][j].m_iStopHour = ClientParam.m_ClientRecordTime[i][j].m_iStopTime / 100;
  330. ClientParam.m_ClientRecordTime[i][j].m_iStopMinute = ClientParam.m_ClientRecordTime[i][j].m_iStopTime % 100;
  331. }
  332. }
  333. myFile.Close();
  334. }
  335. void WriteClientConfig()
  336. {
  337. int i, j;
  338. char buf[256];
  339. CStdioFile myFile;
  340. CString csFilename;
  341. csFilename.Format("%s\\ClientCfg.dat", cWorkDir);
  342. if (myFile.Open(csFilename, CFile::modeCreate|CFile::modeWrite) == FALSE)
  343. {
  344. return;
  345. }
  346. sprintf(buf,"%d\r\n",ClientParam.m_iCycleTime);
  347. myFile.WriteString(buf);
  348. if(ClientParam.m_bCyclePlay)
  349. sprintf(buf,"1\r\n");
  350. else
  351. sprintf(buf,"0\r\n");
  352. myFile.WriteString(buf);
  353. if(ClientParam.m_bUseCard)
  354. sprintf(buf,"1\r\n");
  355. else
  356. sprintf(buf,"0\r\n");
  357. myFile.WriteString(buf);
  358. if(ClientParam.m_bNTSC)
  359. sprintf(buf,"1\r\n");
  360. else
  361. sprintf(buf,"0\r\n");
  362. myFile.WriteString(buf);
  363. sprintf(buf, "%d\r\n", ClientParam.m_iRecordFileInterval);
  364. myFile.WriteString(buf);
  365. if(ClientParam.m_bAutoRecord)
  366. sprintf(buf,"1\r\n");
  367. else
  368. sprintf(buf,"0\r\n");
  369. myFile.WriteString(buf);
  370. if(ClientParam.m_bCycleRecord)
  371. sprintf(buf,"1\r\n");
  372. else
  373. sprintf(buf,"0\r\n");
  374. myFile.WriteString(buf);
  375. sprintf(buf, "%d\r\n", ClientParam.m_iStartRecordDriver);
  376. myFile.WriteString(buf);
  377. sprintf(buf, "%d\r\n", ClientParam.m_iEndRecordDriver);
  378. myFile.WriteString(buf);
  379. sprintf(buf, "%s\r\n", ClientParam.m_csDownLoadPath);
  380. myFile.WriteString(buf);
  381. sprintf(buf, "%s\r\n", ClientParam.m_csPictureSavePath);
  382. myFile.WriteString(buf);
  383. sprintf(buf, "%s\r\n", ClientParam.m_csLogSavePath);
  384. myFile.WriteString(buf);
  385. if(ClientParam.m_bCheckServerTime)
  386. sprintf(buf,"1\r\n");
  387. else
  388. sprintf(buf,"0\r\n");
  389. myFile.WriteString(buf);
  390. sprintf(buf,"%ld\r\n",ClientParam.m_iCheckServerTime);
  391. myFile.WriteString(buf);
  392. for(i = 0; i < 7; i++)
  393. {
  394. for(j = 0; j < 4; j++)
  395. {
  396. sprintf(buf, "%d\r\n", ClientParam.m_ClientRecordTime[i][j].m_iStartTime);
  397. myFile.WriteString(buf);
  398. sprintf(buf, "%d\r\n", ClientParam.m_ClientRecordTime[i][j].m_iStopTime);
  399. myFile.WriteString(buf);
  400. }
  401. }
  402. myFile.Close();
  403. }