-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.cpp
More file actions
90 lines (78 loc) · 2.19 KB
/
main.cpp
File metadata and controls
90 lines (78 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <stdint.h>
#include "kitra_input.h"
#include "kitra_output.h"
#include "kitra_packet_generator.h"
#include "kitra_small_utility.h"
#include "serial.h"
serial kitra_serial;
void kitra_platform_send(char* buffer, uint32_t length)
{
/*Print through serial*/
kitra_serial.serialPuts(buffer);
k_unlock_tx();
}
std::string wait_for_packet()
{
std::string cmd;
bool begin = false;
while(1)
{
int n = kitra_serial.serialDataAvail();
for(int i=0; i<n;i++)
{
int ris = kitra_serial.serialGetchar();
if(ris >= 0 && ris <= 127)
{
if(cmd.length() > 1000) //something went wrong
cmd.clear();
if(ris == '$')
{
begin = true;
cmd.clear();
}
if(begin == true)
{
cmd+=(char)ris;
}
if(ris == '\n')
{
begin = false;
return cmd;
}
}
}
}
}
int main () {
char response_obj[500];
uint32_t packet_size;
uint32_t optional_mask;
if(kitra_serial.serialOpen("/dev/ttySAC3",115200) != -1)
{
printf("SERIAL FOUND\n");
k_input_ldrgb_enable_disable msg1 = {K_INPUT_LDRGB_ENABLE_DISABLE,0,1};
k_send_packet(&msg1,0);
if(k_parse_packet_safe(wait_for_packet().c_str(),(void*)response_obj,&packet_size, &optional_mask) == PARSE_OK)
{
k_output_ack* ack = (k_output_ack*) response_obj;
if(ack->id == K_OUTPUT_ACK)
{
printf("LED ENABLE ACKED\n");
}
}
k_input_ldrgb_set msg2 = {K_INPUT_LDRGB_SET,0,0x0000FF,50,1};
k_send_packet(&msg2,0);
if(k_parse_packet_safe(wait_for_packet().c_str(),(void*)response_obj,&packet_size, &optional_mask) == PARSE_OK)
{
k_output_ack* ack = (k_output_ack*) response_obj;
if(ack->id == K_OUTPUT_ACK)
{
printf("LED SET ACKED\n");
}
}
}
return 0;
}