argbColors/src/commands.c
Dmitry Isaenko e2febb5686
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Add initial argp support
2025-01-28 23:24:25 +03:00

611 lines
No EOL
21 KiB
C

unsigned char end_transaction[64] = { 0xcc, 0x28, 0xff, 0x07, }; //cc28ff07
unsigned char end_alt_transaction[64] = { 0xcc, 0x28, 0x04, }; //cc2804
int prefix(){
counter = 0;
limit = 12; // flow contains 12 I/O events
unsigned char message[64] = {0xcc, 0x20, };
if(64 != writeUsb(message))
return 1;
message[1] = 0x21;
if(64 != writeUsb(message))
return 1;
message[1] = 0x22;
if(64 != writeUsb(message))
return 1;
message[1] = 0x23;
if(64 != writeUsb(message))
return 1;
message[1] = 0x24;
if(64 != writeUsb(message))
return 1;
message[1] = 0x25;
if(64 != writeUsb(message))
return 1;
message[1] = 0x26;
if(64 != writeUsb(message))
return 1;
message[1] = 0x27;
if(64 != writeUsb(message))
return 1;
message[1] = 0x90;
if(64 != writeUsb(message))
return 1;
message[1] = 0x91;
if(64 != writeUsb(message))
return 1;
message[1] = 0x92;
if(64 != writeUsb(message))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
return 0;
}
int staticColorSeparate(unsigned char brightness, unsigned char red, unsigned char green, unsigned char blue){
if (prefix())
return 1;
counter = 0;
limit = 7;
//cc 22 04 00 00 00 00 00 00 00 00 01 __ 00 __ __ __
unsigned char dir1[64] = { 0xcc, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, brightness, 0x00, blue, green, red, };
//cc 24 10 00 00 00 00 00 00 00 00 01 __ 00 __ __ __
unsigned char dir2[64] = { 0xcc, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, brightness, 0x00, blue, green, red, };
//cc 25 20 00 00 00 00 00 00 00 00 01 __ 00 __ __ __
unsigned char dir3[64] = { 0xcc, 0x25, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, brightness, 0x00, blue, green, red, };
//cc 26 40 00 00 00 00 00 00 00 00 01 __ 00 __ __ __
unsigned char dir4[64] = { 0xcc, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, brightness, 0x00, blue, green, red, };
//cc 27 80 00 00 00 00 00 00 00 00 01 __ 00 __ __ __
unsigned char dir5[64] = { 0xcc, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, brightness, 0x00, blue, green, red, };
//cc 91 00 02 00 00 00 00 00 00 00 01 __ 00 __ __ __
unsigned char dir6[64] = { 0xcc, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, brightness, 0x00, blue, green, red, };
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(dir2))
return 1;
if(64 != writeUsb(dir3))
return 1;
if(64 != writeUsb(dir4))
return 1;
if(64 != writeUsb(dir5))
return 1;
if(64 != writeUsb(dir6))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rStatic Color (Separate) sequence sent\n");
return 0;
}
int turnOffBacklight(){
if (prefix())
return 0;
counter = 0;
limit = 7;
//cc 22 04 00 00 00 00 00 00 00 00 01 ff
unsigned char dir1[64] = { 0xcc, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, };
//cc 24 10 00 00 00 00 00 00 00 00 01 ff
unsigned char dir2[64] = { 0xcc, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, };
//cc 25 20 00 00 00 00 00 00 00 00 01 ff
unsigned char dir3[64] = { 0xcc, 0x25, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, };
//cc 26 40 00 00 00 00 00 00 00 00 01 ff
unsigned char dir4[64] = { 0xcc, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, };
//cc 27 80 00 00 00 00 00 00 00 00 01 ff
unsigned char dir5[64] = { 0xcc, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, };
//cc 91 00 02 00 00 00 00 00 00 00 01 ff
unsigned char dir6[64] = { 0xcc, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, };
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(dir2))
return 1;
if(64 != writeUsb(dir3))
return 1;
if(64 != writeUsb(dir4))
return 1;
if(64 != writeUsb(dir5))
return 1;
if(64 != writeUsb(dir6))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rTurn off backlight (Separate) sequence sent\n");
return 0;
}
int turnOffBacklightSync(){
if (prefix())
return 0;
counter = 0;
limit = 2;
//cc 20 ff 07 00 00 00 00 00 00 00 01 ff
unsigned char dir1[64] = { 0xcc, 0x20, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, };
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rTurn off backlight (Sync) sequence sent\n");
return 0;
}
int wave1(){
//cc 20 ff 07 00 00 00 00 00 00 00 01 ff ← turns off backlight
//cc28ff07
turnOffBacklightSync();
counter = 0;
limit = 2;
//cc 22 00 00 00 00 00 00 00 00 00 09 64 00 00 00 00 00 00 00 00 00 26 02 00 00 00 00 00 00 07
unsigned char dir1[64] = { 0xcc, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x64, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, };
if(64 != writeUsb(dir1))
return 1;
//cc2804
if(64 != writeUsb(end_alt_transaction))
return 1;
printf("\rWave 1 (Sync) sequence sent\n");
return 0;
}
int wave2(){
//cc 20 ff 07 00 00 00 00 00 00 00 01 ff ← turns off backlight
//cc28ff07
turnOffBacklightSync();
counter = 0;
limit = 2;
//cc 22 00 00 00 00 00 00 00 00 00 0a 64 00 00 00 00 00 00 00 00 00 7d 00 00 00 00 00 00 00 20
unsigned char dir1[64] = { 0xcc, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x64, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, };
if(64 != writeUsb(dir1))
return 1;
//cc2804
if(64 != writeUsb(end_alt_transaction))
return 1;
printf("\rWave 2 (Sync) sequence sent\n");
return 0;
}
int staticColorSync(unsigned char red, unsigned char green, unsigned char blue){
if (prefix())
return 1;
counter = 0;
limit = 2;
//cc 20 ff 07 00 00 00 00 00 00 00 01 ff 00 __ __ __
unsigned char dir1[64] = { 0xcc, 0x20, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x00, blue, green, red, };
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rStatic Color (Sync) sequence sent\n");
return 0;
}
int impulse(int intensity, unsigned char red, unsigned char green, unsigned char blue){
unsigned char *I;
switch (intensity){
case 0:
I = (unsigned char [6]) { 0x40, 0x06, 0x40, 0x06, 0x20, 0x03 }; // 400640062003
break;
case 1:
I = (unsigned char [6]) { 0xb0, 0x04, 0xb0, 0x04, 0xf4, 0x01 }; // b004b004f401
break;
case 2:
I = (unsigned char [6]) { 0x84, 0x03, 0x84, 0x03, 0xc2, 0x01 }; // 84038403c201
break;
case 3:
I = (unsigned char [6]) { 0xbc, 0x02, 0xbc, 0x02, 0x5e, 0x01 }; // bc02bc025e01
break;
case 4:
I = (unsigned char [6]) { 0xf4, 0x01, 0xf4, 0x01, 0xfa, 0x00 }; // f401f401fa00
break;
default:
printf("Intensity must be defined in range of 0..4\n");
return 1;
}
if (prefix())
return 1;
counter = 0;
limit = 7;
//cc22040000000000000000026400______0000000000____________00000001
unsigned char dir1[64] = { 0xcc, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], I[4], I[5], 0x00, 0x00, 0x00, 0x01, };
//cc24100000000000000000026400______0000000000____________00000001
unsigned char dir2[64] = { 0xcc, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], I[4], I[5], 0x00, 0x00, 0x00, 0x01, };
//cc25200000000000000000026400______0000000000____________00000001
unsigned char dir3[64] = { 0xcc, 0x25, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], I[4], I[5], 0x00, 0x00, 0x00, 0x01, };
//cc26400000000000000000026400______0000000000____________00000001
unsigned char dir4[64] = { 0xcc, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], I[4], I[5], 0x00, 0x00, 0x00, 0x01, };
//cc27800000000000000000026400______0000000000____________00000001
unsigned char dir5[64] = { 0xcc, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], I[4], I[5], 0x00, 0x00, 0x00, 0x01, };
//cc91000200000000000000026400______0000000000____________00000001
unsigned char dir6[64] = { 0xcc, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x64, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], I[4], I[5], 0x00, 0x00, 0x00, 0x01, };
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(dir2))
return 1;
if(64 != writeUsb(dir3))
return 1;
if(64 != writeUsb(dir4))
return 1;
if(64 != writeUsb(dir5))
return 1;
if(64 != writeUsb(dir6))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rImpulse (Separate) sequence sent\n");
return 0;
}
// flash - 1 = brighness; 2 - frequency
int flash(int brightness, int frequency, unsigned char red, unsigned char green, unsigned char blue){
unsigned char brgt;
switch (brightness){
case 0:
brgt = 0x1a;
break;
case 1:
brgt = 0x4d;
break;
case 2:
brgt = 0x80;
break;
case 3:
brgt = 0xb3;
break;
case 4:
brgt = 0xff;
break;
default:
printf("Brightness must be defined in range of 0..4\n");
return 1;
}
unsigned char *F;
switch (frequency){
case 0:
F = (unsigned char [2]) { 0x60, 0x09 }; // 6009
break;
case 1:
F = (unsigned char [2]) { 0xd0, 0x07 }; // d007
break;
case 2:
F = (unsigned char [2]) { 0x40, 0x06 }; // 4006
break;
case 3:
F = (unsigned char [2]) { 0xb0, 0x04 }; // b004
break;
case 4:
F = (unsigned char [2]) { 0x20, 0x03 }; // 2003
break;
default:
printf("Frequency must be defined in range of 0..4\n");
return 1;
}
// cc2204000000000000000003__00______000000000064006400____0000000101
unsigned char dir1[64] = { 0xcc, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x01, };
// cc2410000000000000000003__00______000000000064006400____0000000101
unsigned char dir2[64] = { 0xcc, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x01, };
// cc2520000000000000000003__00______000000000064006400____0000000101
unsigned char dir3[64] = { 0xcc, 0x25, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x01, };
// cc2640000000000000000003__00______000000000064006400____0000000101
unsigned char dir4[64] = { 0xcc, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x01, };
// cc2780000000000000000003__00______000000000064006400____0000000101
unsigned char dir5[64] = { 0xcc, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x01, };
// cc9100020000000000000003__00______000000000064006400____0000000101
unsigned char dir6[64] = { 0xcc, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x01, };
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(dir2))
return 1;
if(64 != writeUsb(dir3))
return 1;
if(64 != writeUsb(dir4))
return 1;
if(64 != writeUsb(dir5))
return 1;
if(64 != writeUsb(dir6))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rFlash (Separate) sequence sent\n");
return 0;
}
int doubleFlash(int brighness, int frequency, unsigned char red, unsigned char green, unsigned char blue){
unsigned char brgt;
switch (brighness){
case 0:
brgt = 0x1a;
break;
case 1:
brgt = 0x4d;
break;
case 2:
brgt = 0x80;
break;
case 3:
brgt = 0xb3;
break;
case 4:
brgt = 0xff;
break;
default:
printf("Brightness must be defined in range of 0..4\n");
return 1;
}
unsigned char *F;
switch (frequency){
case 0:
F = (unsigned char [2]) { 0x28, 0x0a }; // 280a
break;
case 1:
F = (unsigned char [2]) { 0x98, 0x08 }; // 9808
break;
case 2:
F = (unsigned char [2]) { 0x08, 0x07 }; // 0807
break;
case 3:
F = (unsigned char [2]) { 0x78, 0x05 }; // 7805
break;
case 4:
F = (unsigned char [2]) { 0xe8, 0x03 }; // e803
break;
default:
printf("Frequency must be defined in range of 0..4\n");
return 1;
}
//cc2204000000000000000003__00______000000000064006400____0000000102
unsigned char dir1[64] = { 0xcc, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x02, };
//cc2410000000000000000003__00______000000000064006400____0000000102
unsigned char dir2[64] = { 0xcc, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x02, };
//cc2520000000000000000003__00______000000000064006400____0000000102
unsigned char dir3[64] = { 0xcc, 0x25, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x02, };
//cc2640000000000000000003__00______000000000064006400____0000000102
unsigned char dir4[64] = { 0xcc, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x02, };
//cc2780000000000000000003__00______000000000064006400____0000000102
unsigned char dir5[64] = { 0xcc, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x02, };
//cc9100020000000000000003__00______000000000064006400____0000000102
unsigned char dir6[64] = { 0xcc, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, brgt, 0x00, blue, green,
red, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, F[0], F[1], 0x00, 0x00, 0x00, 0x01,
0x02, };
counter = 0;
limit = 7;
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(dir2))
return 1;
if(64 != writeUsb(dir3))
return 1;
if(64 != writeUsb(dir4))
return 1;
if(64 != writeUsb(dir5))
return 1;
if(64 != writeUsb(dir6))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rDouble flash (Separate) sequence sent\n");
return 0;
}
int cycle(int intensity, int brightness){
unsigned char brgt;
switch (brightness){
case 0:
brgt = 0x1a;
break;
case 1:
brgt = 0x4d;
break;
case 2:
brgt = 0x80;
break;
case 3:
brgt = 0xb3;
break;
case 4:
brgt = 0xff;
break;
default:
printf("Brightness must be defined in range of 0..4\n");
return 1;
}
unsigned char *I;
switch (intensity){
case 0:
I = (unsigned char [4]) { 0x78, 0x05, 0xb0, 0x04 }; // 7805b004
break;
case 1:
I = (unsigned char [4]) { 0x52, 0x03, 0xee, 0x02 }; // 5203ee02
break;
case 2:
I = (unsigned char [4]) { 0x26, 0x02, 0xc2, 0x01 }; // 2602c201
break;
case 3:
I = (unsigned char [4]) { 0x58, 0x02, 0x90, 0x01 }; // 58029001
break;
case 4:
I = (unsigned char [4]) { 0x90, 0x01, 0xc8, 0x00 }; // 9001c800
break;
default:
printf("Intensity must be defined in range of 0..4\n");
return 1;
}
counter = 0;
limit = 7;
//cc2204000000000000000004__00fd00fe0000000000________0000000007
unsigned char dir1[64] = { 0xcc, 0x22, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, brgt, 0x00, 0xfd, 0x00,
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], 0x00, 0x00, 0x00, 0x00, 0x07, };
//cc2410000000000000000004__00fd00fe0000000000________0000000007
unsigned char dir2[64] = { 0xcc, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, brgt, 0x00, 0xfd, 0x00,
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], 0x00, 0x00, 0x00, 0x00, 0x07, };
//cc2520000000000000000004__00fd00fe0000000000________0000000007
unsigned char dir3[64] = { 0xcc, 0x25, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, brgt, 0x00, 0xfd, 0x00,
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], 0x00, 0x00, 0x00, 0x00, 0x07, };
//cc2640000000000000000004__00fd00fe0000000000________0000000007
unsigned char dir4[64] = { 0xcc, 0x26, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, brgt, 0x00, 0xfd, 0x00,
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], 0x00, 0x00, 0x00, 0x00, 0x07, };
//cc2780000000000000000004__00fd00fe0000000000________0000000007
unsigned char dir5[64] = { 0xcc, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, brgt, 0x00, 0xfd, 0x00,
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], 0x00, 0x00, 0x00, 0x00, 0x07, };
//cc9100020000000000000004__00fd00fe0000000000________0000000007
unsigned char dir6[64] = { 0xcc, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, brgt, 0x00, 0xfd, 0x00,
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, I[0], I[1], I[2], I[3], 0x00, 0x00, 0x00, 0x00, 0x07, };
if(64 != writeUsb(dir1))
return 1;
if(64 != writeUsb(dir2))
return 1;
if(64 != writeUsb(dir3))
return 1;
if(64 != writeUsb(dir4))
return 1;
if(64 != writeUsb(dir5))
return 1;
if(64 != writeUsb(dir6))
return 1;
if(64 != writeUsb(end_transaction))
return 1;
printf("\rImpulse (Separate) sequence sent\n");
return 0;
}