fake_gcs2.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:pi_gcs 作者: lbusoni 项目源码 文件源码
def setSinusoidalWaveform(self,
                              waveTableId,
                              append,
                              lengthInPoints,
                              amplitudeOfTheSineCurve,
                              offsetOfTheSineCurve,
                              wavelengthOfTheSineCurveInPoints,
                              startPoint,
                              curveCenterPoint):
        '''
        See description of PI_WAV_SIN_P in PI GCS 2.0 DLL doc
        '''
        curveCenterPoint= int(round(curveCenterPoint))
        wavelengthOfTheSineCurveInPoints= \
            int(round(wavelengthOfTheSineCurveInPoints))
        startPoint= int(round(startPoint))
        lengthInPoints= int(round(lengthInPoints))
        assert append == WaveformGenerator.CLEAR, 'only CLEAR implemented'
        assert startPoint >= 0
        assert startPoint < lengthInPoints
        assert curveCenterPoint >= 0
        assert startPoint + curveCenterPoint < lengthInPoints

        ccUp= 0.5* curveCenterPoint
        rampUp= 0.5 * amplitudeOfTheSineCurve* (1 + np.sin(
            np.arange(-ccUp, ccUp) / ccUp * np.pi / 2))
        ccDown= 0.5* (wavelengthOfTheSineCurveInPoints - curveCenterPoint)
        rampDown= 0.5 * amplitudeOfTheSineCurve* (1 - np.sin(
            np.arange(-ccDown, ccDown) / ccDown * np.pi / 2))
        waveform= np.zeros(lengthInPoints) + offsetOfTheSineCurve
        waveform[0: curveCenterPoint]= offsetOfTheSineCurve + rampUp
        waveform[curveCenterPoint: wavelengthOfTheSineCurveInPoints]= \
            offsetOfTheSineCurve + rampDown
        waveform= np.roll(waveform, startPoint)
        self._waveform[waveTableId]= waveform
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号