Record.pl
上传用户:qdrechuli
上传日期:2022-08-01
资源大小:917k
文件大小:7k
源码类别:

视频捕捉/采集

开发平台:

Visual C++

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use DBI;
  4. use CGI;
  5. #use Jpc::Html;
  6. sub Document
  7. {
  8. (my $Titre,my $Act,my $Cam,my $Year,my $Mon,my $Day,my $Hour,my $Cur) = @_;
  9. my $Meta;
  10. print "Content-type: text/htmln";
  11. print "n";
  12. print '<HTML>',"n";
  13.   print '<HEAD>',"n";
  14. my $Cmd = $Cam;
  15. $Cmd .= '-'.$Year;
  16. $Cmd .= '-'.$Mon;
  17. $Cmd .= '-'.$Day;
  18. $Cmd .= '-'.$Hour;
  19. if ($Act eq 'ReculerV') { $Cur -=3 ; }
  20. if ($Act eq 'Lire') { $Cur +=1 ; }
  21. if ($Act eq 'AvancerV') { $Cur +=3 ; }
  22. $Cmd .= '-'.$Cur;
  23. $Cmd .= '-'.$Act;
  24.  
  25. #  $Meta = '/cgi-bin/Net-Cam/Record.pl?VL_Cmd='.$Cmd;
  26. $Meta = 'Record.pl?VL_Cmd='.$Cmd;
  27.   if ($Act eq 'Lire' or $Act eq 'AvancerV' or $Act eq 'ReculerV')
  28.   {
  29.   print '<meta http-equiv="Refresh" content="1;URL=',$Meta,'">';
  30. # print '<meta http-equiv="Refresh" content="3">';
  31.   }
  32.    print '<TITLE>',$Meta,'</TITLE>',"n";
  33.   print '</HEAD>',"n";
  34. print '<BODY BGCOLOR="#FFFFFF" BACKGROUND="/NetAdmin/images/fond2.jpg">',"n";
  35. }
  36. sub Titre
  37. {
  38. print '<H1 ALIGN="CENTER">',$_[0],"</H1><P>n";
  39. }
  40. sub Chapitre
  41. {
  42. print '<H3>',$_[0],"</H3>n";
  43. }
  44. sub Fin_Document
  45. {
  46. print '</BODY>',"n";
  47. print '</HTML>',"n";
  48. }
  49. sub main
  50. {
  51. my $sql;
  52. my $sqlreq;
  53. my $h = new CGI;
  54. my $Pos;
  55. my $PCmd = $h->param('VL_Cmd');
  56. $Pos = index($PCmd,"-");
  57. my $CamID = substr($PCmd,0,$Pos);
  58. $PCmd = substr($PCmd,$Pos+1,length($PCmd)-$Pos-1);
  59. $Pos = index($PCmd,"-");
  60. my $Year = substr($PCmd,0,$Pos);
  61. $PCmd = substr($PCmd,$Pos+1,length($PCmd)-$Pos-1);
  62. $Pos = index($PCmd,"-");
  63. my $Mon = substr($PCmd,0,$Pos);
  64. $PCmd = substr($PCmd,$Pos+1,length($PCmd)-$Pos-1);
  65. $Pos = index($PCmd,"-");
  66. my $Day = substr($PCmd,0,$Pos);
  67. $PCmd = substr($PCmd,$Pos+1,length($PCmd)-$Pos-1);
  68. $Pos = index($PCmd,"-");
  69. my $Hour = substr($PCmd,0,$Pos);
  70. $PCmd = substr($PCmd,$Pos+1,length($PCmd)-$Pos-1);
  71. $Pos = index($PCmd,"-");
  72. my $Cur = substr($PCmd,0,$Pos);
  73. $PCmd = substr($PCmd,$Pos+1,length($PCmd)-$Pos-1);
  74. my $Act = $PCmd;
  75. Document("Net-Cam : Visualisation Enregistrement",$Act,$CamID,$Year,$Mon,$Day,$Hour,$Cur);
  76. Titre("Net-Cam : Visualisation Enregistrement");
  77. print '<FONT FACE=verdana>';
  78. print '<FONT SIZE="+1">';
  79. my $db = DBI->connect("DBI:mysql:netcam","root","");
  80. $sqlreq = "SELECT C_Url,C_Name,C_Active,C_Freq FROM cam WHERE C_ID LIKE '".$CamID."'";
  81. $sql = $db->prepare($sqlreq);
  82. $sql->execute();
  83. (my $CUrl,my $CName,my $CActive,my $CFreq) = $sql->fetchrow();
  84. $sql->finish();
  85. print "Camera = ",$CName," ";
  86. print "Url = HTTP://",$CUrl,"<BR>";
  87. print "<B>";
  88. if ($CActive)
  89. {
  90. print "<FONT COLOR=GREEN>Enregistrement ACTIF</FONT> ";
  91. print "Fr閝uence = 1 image toutes les ",$CFreq," secondes<BR>n";
  92. }
  93. else
  94. {
  95. print "<FONT COLOR=RED>Enregistrement INACTIF</FONT><BR>n";
  96. }
  97. print "</B><P>n";
  98. my $Date = $Year;
  99. if ($Mon<10) { $Date .= '0'; }
  100. $Date .= $Mon;
  101. if ($Day<10) { $Date .= '0'; }
  102. $Date .= $Day;
  103. if ($Hour<10) { $Date .= '0'; }
  104. $Date .= $Hour;
  105. $sqlreq = "SELECT T_Index FROM tranche WHERE ";
  106. $sqlreq .= "T_Cam=".$CamID." ";
  107. $sqlreq .= "AND T_Day ='".substr($Date,0,8)."' ";
  108. $sqlreq .= "AND T_Hour =".substr($Date,8,2)." ";
  109. $sql = $db->prepare($sqlreq);
  110. $sql->execute();
  111. (my $NbImg) = $sql->fetchrow();
  112. $sql->finish();
  113. print $NbImg," images sur cette p閞iode ",$Date,"<BR>n";
  114. if ($NbImg)
  115. {
  116. my $SDate = $Date;
  117. my $Minutes = int($Cur/60);
  118. if ($Minutes<10) { $SDate .= '0'; }
  119. $SDate .= $Minutes;
  120. my $Secondes = $Cur % 60;
  121. if ($Secondes<10) { $SDate .= '0'; }
  122. $SDate .= $Secondes;
  123. print '<P>SearchDate = ',$SDate," Cur=",$Cur,"<BR>n";
  124. my $sqlreq = "SELECT R_Date,R_Index FROM record WHERE ";
  125. $sqlreq .= "R_Cam=".$CamID." ";
  126. $sqlreq .= "AND R_Day ='".substr($Date,0,8)."' ";
  127. $sqlreq .= "AND R_Hour =".substr($Date,8,2)." ";
  128. $sqlreq .= "AND R_Index =".$Cur." ORDER BY R_Index ";
  129. $sqlreq .= "LIMIT 0,1";
  130. my $sql = $db->prepare($sqlreq);
  131. $sql->execute();
  132. (my $TimeDate,my $Index) = $sql->fetchrow();
  133. #(my $TimeDate,my $Index) = ('toto',0);
  134. $sql->finish();
  135. print "<P>New index = ",$Index,"n";
  136. $Cur = $Index;
  137. print "<P>New index = ",$Cur,"n";
  138. if ($TimeDate eq '')
  139. {
  140. print "<P>Timedate blancn";
  141. $Cur=$NbImg;
  142. $sqlreq = "SELECT R_Date,R_Index FROM record WHERE ";
  143. $sqlreq .= "R_Cam=".$CamID." ";
  144. $sqlreq .= "AND R_Day like '".substr($Date,0,8)."' ";
  145. $sqlreq .= "AND R_Hour =".substr($Date,8,2)." ";
  146. $sqlreq .= "AND R_Index >=".$Cur." ORDER BY R_Index LIMIT 0,1";
  147. $sql = $db->prepare($sqlreq);
  148. $sql->execute();
  149. ($TimeDate,$Index) = $sql->fetchrow();
  150. $sql->finish();
  151. $Cur = $Index;
  152. }
  153. print "<BR>",$Act," ",$Cur,"<BR>";
  154. if ($Act eq 'D閎ut') { $Cur = 1; }
  155. if ($Act eq 'Reculer') { $Cur -= 1; }
  156. if ($Act eq 'Avancer') { $Cur += 1; }
  157. if ($Act eq 'Lire') { $Cur += 1; }
  158. if ($Act eq 'Fin') { $Cur = $NbImg; }
  159. if ($Cur<1) { $Cur=1; }
  160. if ($Cur>$NbImg) { $Cur = $NbImg; $Act = 'Stop'; }
  161. my $Cmd = $CamID;
  162. $Cmd .= '-'.$Year;
  163. $Cmd .= '-'.$Mon;
  164. $Cmd .= '-'.$Day;
  165. $Cmd .= '-'.$Hour;
  166. $Cmd .= '-'.$Cur;
  167. $Cmd .= '-';
  168.        print '<TABLE COLS=8>';
  169.        print '<TR>';
  170.        print '<TD>';
  171. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  172.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'D閎ut">';
  173. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="D閎ut">';
  174. print "</FORM>";
  175. print '</TD>';
  176. print '<TD>';
  177. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  178.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'ReculerV">';
  179. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="Reculer Vite">';
  180. print "</FORM>";
  181. print '</TD>';
  182. print '<TD>';
  183. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  184.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'Reculer">';
  185. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="Reculer">';
  186. print "</FORM>";
  187. print '</TD>';
  188. print '<TD>';
  189. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  190.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'Lire">';
  191. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="Lire">';
  192. print "</FORM>";
  193. print '</TD>';
  194. print '<TD>';
  195. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  196.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'Stop">';
  197. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="Stop">';
  198. print "</FORM>";
  199. print '</TD>';
  200. print '<TD>';
  201. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  202.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'Avancer">';
  203. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="Avancer">';
  204. print "</FORM>";
  205. print '</TD>';
  206. print '<TD>';
  207. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  208.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'AvancerV">';
  209. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="Avancer Vite">';
  210. print "</FORM>";
  211. print '</TD>';
  212. print '<TD>';
  213. print "<FORM METHOD=GET ACTION=Record.pl>","n";
  214.         print ' <INPUT NAME="VL_Cmd" TYPE="HIDDEN" VALUE="',$Cmd,'Fin">';
  215. print '<INPUT NAME="VL_Ok" TYPE="SUBMIT" VALUE="Fin">';
  216. print "</FORM>";
  217. print '</TD>';
  218. print '</TR>';
  219. print '</TABLE>';
  220. print '<CENTER>';
  221.         print "Image = ",$Index," Horodatage = ",$TimeDate,"n";
  222. print '<BR><CENTER><IMG SRC="DispImg.pl?VL_Cam=',$CamID,';VL_Date=',$Date,';VL_Cur=',$Index,'">',"</CENTER>n",
  223. }
  224. $db->disconnect();
  225.    Fin_Document();
  226. }
  227. main();
  228. exit(0);