📄 subcmd.c
字号:
rs_returnNG();
return NG;
}
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
data = g_Duty[ch-1][pixel-1];
cnv_bta5(data, &datstr[0]);
g_RsSend_Bf[4] = ' ';
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[5 + i] = datstr[i];
}
g_RsSend_Bf[9] = 0x0d;
g_RsSend_CT = 10;
return OK;
}
short get_ab()
{
unsigned short ch, pixel, range;
short ret, ifdata, ifdatb;
short i;
char datstr[10];
if (g_RsRecv_CT != 10) {
rs_returnNG();
return NG;
}
ret = check_CH(0, &ch, &pixel, &range);
if (ret != OK) {
rs_returnNG();
return NG;
}
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
switch(range) {
case 1:
ifdata = g_CalIfaR1[ch-1][pixel-1];
ifdatb = g_CalIfbR1[ch-1][pixel-1];
break;
case 2:
ifdata = g_CalIfaR2[ch-1][pixel-1];
ifdatb = g_CalIfbR2[ch-1][pixel-1];
break;
case 3:
ifdata = g_CalIfaR3[ch-1][pixel-1];
ifdatb = g_CalIfbR3[ch-1][pixel-1];
break;
}
cnv_bta5(ifdata, &datstr[0]);
g_RsSend_Bf[4] = ' ';
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[5 + i] = datstr[i];
}
cnv_bta5(ifdatb, &datstr[0]);
g_RsSend_Bf[9] = ' ';
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[10 + i] = datstr[i];
}
g_RsSend_Bf[14] = 0x0d;
g_RsSend_CT = 15;
return OK;
}
short get_cwpls()
{
unsigned short ch, pixel, range;
short ret ;
short i;
if (g_RsRecv_CT != 8) {
rs_returnNG();
return NG;
}
ret = check_CH(1, &ch, &pixel, &range);
if (ret != OK) {
rs_returnNG();
return NG;
}
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
g_RsSend_Bf[4] = '0';
if (g_CwPulse[ch-1][pixel-1] == 1) {
g_RsSend_Bf[5] = '1';
}
else {
g_RsSend_Bf[5] = '0';
}
g_RsSend_Bf[6] = 0x0d;
g_RsSend_CT = 7;
return OK;
}
short get_pole()
{
unsigned short ch, pixel, range;
short ret ;
short i;
if (g_RsRecv_CT != 6) {
rs_returnNG();
return NG;
}
ret = check_CH(2, &ch, &pixel, &range);
if (ret != OK) {
rs_returnNG();
return NG;
}
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
g_RsSend_Bf[4] = '0';
if (g_DrivePole[ch-1] == 1) {
g_RsSend_Bf[5] = '1';
}
else {
g_RsSend_Bf[5] = '0';
}
g_RsSend_Bf[6] = 0x0d;
g_RsSend_CT = 7;
return OK;
}
short get_range()
{
unsigned short ch, pixel, range;
short ret ;
short i;
if (g_RsRecv_CT != 8) {
rs_returnNG();
return NG;
}
ret = check_CH(0, &ch, &pixel, &range);
if (ret != OK) {
rs_returnNG();
return NG;
}
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
g_RsSend_Bf[4] = '0';
if (g_Range[ch-1] == 1) {
g_RsSend_Bf[5] = '1';
}
else {
g_RsSend_Bf[5] = '0';
}
g_RsSend_Bf[6] = 0x0d;
g_RsSend_CT = 7;
return OK;
}
short check_onoff()
{
unsigned short ch, pixel, range;
short ret ;
short i;
if (g_RsRecv_CT != 8) {
rs_returnNG();
return NG;
}
ret = check_CH(1, &ch, &pixel, &range);
if (ret != OK) {
rs_returnNG();
return NG;
}
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
g_RsSend_Bf[4] = '0';
if (g_OnOff[ch-1][pixel-1] == 1) {
g_RsSend_Bf[5] = '1';
}
else {
g_RsSend_Bf[5] = '0';
}
g_RsSend_Bf[6] = 0x0d;
g_RsSend_CT = 7;
return OK;
}
short check_cover()
{
short i;
unsigned short data;
unsigned char chrh;
unsigned char chrl;
char datstr[10];
if (g_RsRecv_CT != 4) {
rs_returnNG();
return NG;
}
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
chrh = DRV_STATUS9 ;
chrl = DRV_STATUS1 ;
data = chrh;
data = (data << 8) || chrl;
cnv_bta5(data, &datstr[0]);
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[4 + i] = datstr[i];
}
g_RsSend_Bf[8] = 0x0d;
g_RsSend_CT = 9;
return OK;
}
unsigned short change_cmd2no()
{
unsigned short ret;
unsigned short siz;
ret = -1 ;
siz = 2;
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_IF_STR, siz) ;
if (ret == 1) {
ret = SET_IF ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_DUTY_STR, siz) ;
if (ret == 1) {
ret = SET_DUTY ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_IFAB_STR, siz) ;
if (ret == 1) {
ret = SET_IFAB ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_CWP_STR, siz) ;
if (ret == 1) {
ret = SET_CWP ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_ONOFF_STR, siz) ;
if (ret == 1) {
ret = SET_ONOFF ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_POLE_STR, siz) ;
if (ret == 1) {
ret = SET_POLE ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_MON_STR, siz) ;
if (ret == 1) {
ret = SET_MON ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_E2P_STR, siz) ;
if (ret == 1) {
ret = SET_E2P ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)SET_CLEAR_STR, siz) ;
if (ret == 1) {
ret = SET_CLEAR ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)GET_IF_STR, siz) ;
if (ret == 1) {
ret = GET_IF ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)GET_DUTY_STR, siz) ;
if (ret == 1) {
ret = GET_DUTY ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)GET_IFAB_STR, siz) ;
if (ret == 1) {
ret = GET_IFAB ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)GET_CWP_STR, siz) ;
if (ret == 1) {
ret = GET_CWP ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)GET_POLE_STR, siz) ;
if (ret == 1) {
ret = GET_POLE ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)CHK_ONOFF_STR, siz) ;
if (ret == 1) {
ret = CHK_ONOFF ;
return ret ;
}
ret = strcopm(&g_RsRecv_Bf[2], (unsigned char *)CHK_COVER_STR, siz) ;
if (ret == 1) {
ret = CHK_COVER ;
return ret ;
}
return (ret);
}
unsigned short strcopm(unsigned char *str1, unsigned char *str2, unsigned short size)
{
unsigned short i, ret;
unsigned short slen;
unsigned char ch1, ch2;
if (size < 2) {
ret = 0;
return ret;
}
ret = 1;
slen = size ;
for (i = 0 ; i < slen; i++)
{
ch1 = *(str1 + i);
ch2 = *(str2 + i);
if (ch1 != ch2) {
ret = 0;
break;
}
}
return ret ;
}
void bitohex(unsigned short data, char *bi_data) /* binary to hex (2 byte data) */
{
unsigned short i,j,k;
char ich;
char *ipt;
ipt = bi_data;
j = 0;
k = 0xf000;
for(i=0 ; i < 2 ; i++){
if (( 1 - i ) != 0) { /* 僔僼僩夞悢楇埲奜 */
j = (data >> ((1-i) * 4)) ;
}
else {
j = data;
}
j &= 0x000f;
ich = (char)j;
if (ich > 9 ) {
ich += 0x37;
} /* 塸戝暥帤 */
else {
ich |= 0x30;
} /* 悢帤俙俽俠 */
k >>= 4;
*ipt = ich;
ipt++;
}
}
void hextobi(char *data_adr, short size, short *bi_data) /* hex to binary */
{
unsigned short i,j;
unsigned char ich;
char *ipt;
ipt = data_adr;
if (size != 2) {
*bi_data = 0 ;
return ;
}
j = 0;
ich = ipt[0];
if ((ich >= '0') && (ich <= '9')) {
i = (short)ich - 0x30 ;
}
else {
i = (short)ich - 0x37 ;
}
j = i * 10;
ich = ipt[1];
if ((ich >= '0') && (ich <= '9')) {
i = (short)ich - 0x30 ;
}
else {
i = (short)ich - 0x37 ;
}
j += i * 1;
*bi_data = j; /* 僶僀僫儕乕僨乕僞僙僢僩 */
}
void rs_returnOK()
{
short i;
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
g_RsSend_Bf[4] = 'O';
g_RsSend_Bf[5] = 'K';
g_RsSend_Bf[6] = 0x0d;
g_RsSend_CT = 7;
}
void rs_returnNG()
{
short i;
for (i = 0; i < 4; i++)
{
g_RsSend_Bf[i] = g_RsRecv_Bf[i];
}
g_RsSend_Bf[4] = 'N';
g_RsSend_Bf[5] = 'G';
g_RsSend_Bf[6] = 0x0d;
g_RsSend_CT = 7;
}
short check_driverAddr()
{
unsigned short data, addr;
//hextobi(&g_RsRecv_Bf[0], 2, &data);
//if (data == ALL_CLEAR) {
//return OK;
//}
addr = P7DR & 0xff; //0x3f!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//if (data == addr) {
//return OK;
//}
return addr; //return NG
}
void hextobi5(char *data_adr, short size, short *bi_data) /* hex to binary */
{
unsigned short i,j;
unsigned char ich;
char *ipt;
ipt = data_adr;
if (size != 4) {
*bi_data = 0 ;
return ;
}
j = 0;
ich = ipt[0];
if ((ich >= '0') && (ich <= '9')) {
i = (short)ich - 0x30 ;
j = i * 1000;
}
ich = ipt[1];
if ((ich >= '0') && (ich <= '9')) {
i = (short)ich - 0x30 ;
j += i * 100;
}
ich = ipt[2];
if ((ich >= '0') && (ich <= '9')) {
i = (short)ich - 0x30 ;
j += i * 10;
}
ich = ipt[3];
if ((ich >= '0') && (ich <= '9')) {
i = (short)ich - 0x30 ;
j += i ;
}
*bi_data = j; /* 僶僀僫儕乕僨乕僞僙僢僩 */
}
void bitohex5(unsigned short data,char *bi_data) /* binary to hex (4 byte data) */
{
unsigned short i,j,k;
char ich;
char *ipt;
ipt = bi_data;
j = 0;
k = 0xf000;
for(i=0 ; i<4 ; i++){
if (( 3 - i ) != 0){ /* 僔僼僩夞悢楇埲奜 */
j = (data >> ((3-i) * 4)) ;
} else { j = data;}
j &= 0x000f;
ich = (char)j;
if (ich > 9 ) { ich += 0x37;} /* 塸戝暥帤 */
else {ich |= 0x30;} /* 悢帤俙俽俠 */
k >>= 4;
*ipt = ich;
ipt++;
}
}
void cnv_bta5(unsigned short dt, unsigned char *adrs) // 5 digit binary to ascii
{
unsigned short i,j,k,n,m;
char ichr;
i = dt;
j = 0; // leading zero suppress flag
n = 1000;
for( k=0; k<4; k++ ) {
m = i / n;
if ((m != 0) || (j != 0)) {
ichr = (m | 0x30);
*adrs = ichr;
adrs++;
j++;
}
else {
*adrs = '0';
adrs++;
}
i -= (n * m);
n /= 10;
}
ichr = (i | 0x30);
*adrs = ichr;
adrs++;
j ++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -