data_type.h
Go to the documentation of this file.
1 /* Copyright 2017 UFACTORY Inc. All Rights Reserved.
2  *
3  * Software License Agreement (BSD License)
4  *
5  * Author: Jimy Zhang <jimy92@163.com>
6  ============================================================================*/
7 #ifndef CORE_COMMON_DATA_TYPE_H_
8 #define CORE_COMMON_DATA_TYPE_H_
9 
10 #include <stdio.h>
11  //#include <arpa/inet.h>
12 
13 
14 inline void bin64_to_8(long long a, unsigned char* b) {
15  b[0] = (unsigned char)(a >> 56);
16  b[1] = (unsigned char)(a >> 48);
17  b[2] = (unsigned char)(a >> 40);
18  b[3] = (unsigned char)(a >> 32);
19  b[4] = (unsigned char)(a >> 24);
20  b[5] = (unsigned char)(a >> 16);
21  b[6] = (unsigned char)(a >> 8);
22  b[7] = (unsigned char)a;
23 }
24 
25 inline void bin32_to_8(int a, unsigned char *b) {
26  b[0] = (unsigned char)(a >> 24);
27  b[1] = (unsigned char)(a >> 16);
28  b[2] = (unsigned char)(a >> 8);
29  b[3] = (unsigned char)a;
30 }
31 
32 inline void bin16_to_8(int a, unsigned char *b) {
33  unsigned short temp = a;
34  b[0] = (unsigned char)(temp >> 8);
35  b[1] = (unsigned char)temp;
36 }
37 
38 inline int bin8_to_32(unsigned char *a) {
39  return ((a[0] << 24) + (a[1] << 16) + (a[2] << 8) + a[3]);
40 }
41 
42 inline int bin8_to_16(unsigned char *a) {
43  signed int tmp = (a[0] << 8) + a[1];
44  return tmp;
45 }
46 
47 inline int bin8_to_s16(unsigned char *a) {
48  return (int)(short)(a[0] << 8) + a[1];
49 }
50 
51 inline void bin8_to_ns16(unsigned char *a, int *data, int n) {
52  for (int i = 0; i < n; ++i) {
53  data[i] = bin8_to_s16(&a[i * 2]);
54  }
55 }
56 
57 inline void fp32_to_hex(double dataf, unsigned char datahex[4]) {
58  union _fp32hex {
59  float dataf;
60  unsigned char datahex[4];
61  } fp32hex;
62  fp32hex.dataf = (float)dataf;
63  datahex[0] = fp32hex.datahex[0];
64  datahex[1] = fp32hex.datahex[1];
65  datahex[2] = fp32hex.datahex[2];
66  datahex[3] = fp32hex.datahex[3];
67 }
68 
69 inline float hex_to_fp32(unsigned char datahex[4]) {
70  union _fp32hex {
71  float dataf;
72  unsigned char datahex[4];
73  } fp32hex;
74  fp32hex.datahex[0] = datahex[0];
75  fp32hex.datahex[1] = datahex[1];
76  fp32hex.datahex[2] = datahex[2];
77  fp32hex.datahex[3] = datahex[3];
78  return (float)fp32hex.dataf;
79 }
80 
81 inline void int32_to_hex(int data, unsigned char datahex[4]) {
82  union _int32hex {
83  int data;
84  unsigned char datahex[4];
85  } int32hex;
86  int32hex.data = data;
87  datahex[0] = int32hex.datahex[0];
88  datahex[1] = int32hex.datahex[1];
89  datahex[2] = int32hex.datahex[2];
90  datahex[3] = int32hex.datahex[3];
91 }
92 
93 inline void hex_to_nfp32(unsigned char *datahex, float *dataf, int n) {
94  for (int i = 0; i < n; ++i)
95  {
96  dataf[i] = hex_to_fp32(&datahex[i * 4]);
97  }
98 }
99 
100 inline void nfp32_to_hex(float *dataf, unsigned char *datahex, int n) {
101  for (int i = 0; i < n; ++i)
102  {
103  fp32_to_hex(dataf[i], &datahex[i * 4]);
104  }
105 }
106 
107 inline void nint32_to_hex(int *data, unsigned char *datahex, int n) {
108  for (int i = 0; i < n; ++i)
109  {
110  int32_to_hex(data[i], &datahex[i * 4]);
111  }
112 }
113 
114 #endif
void fp32_to_hex(double dataf, unsigned char datahex[4])
Definition: data_type.h:57
void int32_to_hex(int data, unsigned char datahex[4])
Definition: data_type.h:81
void hex_to_nfp32(unsigned char *datahex, float *dataf, int n)
Definition: data_type.h:93
int bin8_to_32(unsigned char *a)
Definition: data_type.h:38
void nint32_to_hex(int *data, unsigned char *datahex, int n)
Definition: data_type.h:107
void nfp32_to_hex(float *dataf, unsigned char *datahex, int n)
Definition: data_type.h:100
void bin16_to_8(int a, unsigned char *b)
Definition: data_type.h:32
void bin64_to_8(long long a, unsigned char *b)
Definition: data_type.h:14
void bin8_to_ns16(unsigned char *a, int *data, int n)
Definition: data_type.h:51
float hex_to_fp32(unsigned char datahex[4])
Definition: data_type.h:69
int bin8_to_s16(unsigned char *a)
Definition: data_type.h:47
void bin32_to_8(int a, unsigned char *b)
Definition: data_type.h:25
int bin8_to_16(unsigned char *a)
Definition: data_type.h:42


xarm_api
Author(s):
autogenerated on Sat May 8 2021 02:51:23