testdascontrol2.m 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. %LPStat = calllib(Par.Dll, 'Reset_Status', 0);
  2. %setdatatype(LPStat, 'uint32Ptr', 8, 1)
  3. N = 400;
  4. Time = zeros(N,1);
  5. Hit = zeros(N,1);
  6. Xp = zeros(N,1);
  7. Yp = zeros(N,1);
  8. %calllib(Par.Dll, 'Reset_Status', 2);
  9. dasreset( 2 )
  10. for n = 1:N
  11. %calllib(Par.Dll, 'Check', 2);
  12. if LPStat(2) ~= 2
  13. dasrun(2)
  14. else
  15. daspause(2)
  16. end
  17. Time(n) = LPStat(1);
  18. Hit(n) = LPStat(2);
  19. if Time(n) >= 550 && Hit(n) == 0
  20. %calllib(Par.Dll, 'DO_Bit', 3, 1);
  21. dasbit( 3, 1);
  22. end
  23. %dasgetaverage();
  24. %Xp(n) = LPStat(7); %average position over window initialized in DasInit
  25. %Yp(n) = LPStat(8);
  26. end
  27. %calllib(Par.Dll, 'DO_Bit', 3, 0);
  28. dasbit( 3, 0);
  29. D = dasgettrace();
  30. Time(n+1) = LPStat(1);
  31. %D = reshape(trace, 1024, 2);
  32. as = (1:length(D))+ Time(n+1) - 1024;
  33. plot(as, D(:,[1 2]))
  34. S = LPStat(5);
  35. hold on, line([S S], [0 1000], 'color', 'r')
  36. %hold on, plot(Hit)
  37. %%
  38. global LPStat
  39. WIN = [ 0, 0, 200, 200, 0; ...
  40. 2000, 0, 500, 500, 2; ...
  41. -300, -300, 100, 100, 1].';
  42. NumWins = size(WIN, 2);
  43. %calllib(Par.Dll, 'Set_Window', NumWins, WIN(:), 0)
  44. dassetwindow( NumWins, WIN(:), 0, 1, 1 )
  45. daszero();