FileSource.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. ###########################################
  2. # Project: CMSIS DSP Library
  3. # Title: FileSource.py
  4. # Description: Node for creating file source
  5. #
  6. # $Date: 30 July 2021
  7. # $Revision: V1.10.0
  8. #
  9. # Target Processor: Cortex-M and Cortex-A cores
  10. # -------------------------------------------------------------------- */
  11. #
  12. # Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
  13. #
  14. # SPDX-License-Identifier: Apache-2.0
  15. #
  16. # Licensed under the Apache License, Version 2.0 (the License); you may
  17. # not use this file except in compliance with the License.
  18. # You may obtain a copy of the License at
  19. #
  20. # www.apache.org/licenses/LICENSE-2.0
  21. #
  22. # Unless required by applicable law or agreed to in writing, software
  23. # distributed under the License is distributed on an AS IS BASIS, WITHOUT
  24. # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  25. # See the License for the specific language governing permissions and
  26. # limitations under the License.
  27. ############################################
  28. from ..simu import *
  29. # Read a list of float from a file
  30. # and pad with 0 indefinitely when end of file is reached.
  31. class FileSource(GenericSource):
  32. def __init__(self,outputSize,fifoout,name):
  33. GenericSource.__init__(self,outputSize,fifoout)
  34. self._file=open(name,"r")
  35. def run(self):
  36. a=self.getWriteBuffer()
  37. for i in range(self._outputSize):
  38. s=self._file.readline()
  39. if (len(s)>0):
  40. a[i]=float(s)
  41. else:
  42. a[i] = 0
  43. return(0)
  44. def __del__(self):
  45. self._file.close()