Smart-Home am Beispiel der Präsenzerkennung im Raum Projektarbeit Lennart Heimbs, Johannes Krug, Sebastian Dohle und Kevin Holzschuh bei Prof. Oliver Hofmann SS2019
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MLX90640_API.h 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /**
  2. * @copyright (C) 2017 Melexis N.V.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. *
  16. */
  17. #ifndef _MLX640_API_H_
  18. #define _MLX640_API_H_
  19. typedef struct
  20. {
  21. int16_t kVdd;
  22. int16_t vdd25;
  23. float KvPTAT;
  24. float KtPTAT;
  25. uint16_t vPTAT25;
  26. float alphaPTAT;
  27. int16_t gainEE;
  28. float tgc;
  29. float cpKv;
  30. float cpKta;
  31. uint8_t resolutionEE;
  32. uint8_t calibrationModeEE;
  33. float KsTa;
  34. float ksTo[4];
  35. int16_t ct[4];
  36. float alpha[768];
  37. int16_t offset[768];
  38. float kta[768];
  39. float kv[768];
  40. float cpAlpha[2];
  41. int16_t cpOffset[2];
  42. float ilChessC[3];
  43. uint16_t brokenPixels[5];
  44. uint16_t outlierPixels[5];
  45. } paramsMLX90640;
  46. int MLX90640_DumpEE(uint8_t slaveAddr, uint16_t *eeData);
  47. int MLX90640_GetFrameData(uint8_t slaveAddr, uint16_t *frameData);
  48. int MLX90640_ExtractParameters(uint16_t *eeData, paramsMLX90640 *mlx90640);
  49. float MLX90640_GetVdd(uint16_t *frameData, const paramsMLX90640 *params);
  50. float MLX90640_GetTa(uint16_t *frameData, const paramsMLX90640 *params);
  51. void MLX90640_GetImage(uint16_t *frameData, const paramsMLX90640 *params, float *result);
  52. void MLX90640_CalculateTo(uint16_t *frameData, const paramsMLX90640 *params, float emissivity, float tr, float *result);
  53. int MLX90640_SetResolution(uint8_t slaveAddr, uint8_t resolution);
  54. int MLX90640_GetCurResolution(uint8_t slaveAddr);
  55. int MLX90640_SetRefreshRate(uint8_t slaveAddr, uint8_t refreshRate);
  56. int MLX90640_GetRefreshRate(uint8_t slaveAddr);
  57. int MLX90640_GetSubPageNumber(uint16_t *frameData);
  58. int MLX90640_GetCurMode(uint8_t slaveAddr);
  59. int MLX90640_SetInterleavedMode(uint8_t slaveAddr);
  60. int MLX90640_SetChessMode(uint8_t slaveAddr);
  61. #endif