NanovoltmeterとPCの通信に関して

結構悩んでました。

PCにポートが足りないためRS232+USBで通信を取ってる。

よく落ちるのでやっぱりRS232で直接に繋がらないとなぁって思ってた。

最近気づいたのは、Nanovoltmeterを一旦Remote Controlの状態になると、PCとの通信が落ちるってこと。その時はLabVIEWを再起動しないと変な信号を送ったり、エラーが出る。

解決策としては、なるべくRemote Controlにならないように、全部PCでコントロールする。

One Algorithm to Generate Gaussian Distribution in C

#include <stdlib.h>
#include <math.h>
 
double gaussrand()
{
    static double V1, V2, S;
    static int phase = 0;
    double X;
     
    if ( phase == 0 ) {
        do {
            double U1 = (double)rand() / RAND_MAX;
            double U2 = (double)rand() / RAND_MAX;
             
            V1 = 2 * U1 - 1;
            V2 = 2 * U2 - 1;
            S = V1 * V1 + V2 * V2;
        } while(S >= 1 || S == 0);
         
        X = V1 * sqrt(-2 * log(S) / S);
    } else
        X = V2 * sqrt(-2 * log(S) / S);
         
    phase = 1 - phase;
 
    return X;
}

blog.csdn.net

Win32 API绘图避免闪烁

首先在创建窗口时候设置背景为NULL

wc.hbrBackground = NULL;

然后在WM_CREATE中

hdc = GetDC(hWnd); //获取设备
hdcBuffer = CreateCompatibleDC(hdc); //给设备分配一个内存空间
hBitMap = CreateCompatibleBitmap(hdc, 1200, 700); //创建一个cxClient, cyClient大小并且适应DC设备环境的位图
ReleaseDC(hWnd, hdc);
SelectObject(hdcBuffer, hBitMap); //将位图设置为hdcBuffer的画刷

在WM_PAINT函数中画图

PatBlt(hdcBuffer, 0, 0, 1200, 700, WHITENESS);
{Draw something;}
BitBlt(hdc, 0, 0, 1200, 700, hdcBuffer, 0, 0, SRCCOPY);

参考

blog.csdn.net