c#-返回值哪里有问题。。

问题描述

返回值哪里有问题。。

public ErrorCode InquiryCard(ref string SerialNo)
{
if (!_Active) return ErrorCode.DeviceNoOpen;
try
{
//生成寻卡待发命令
byte[] send = new byte[6];
send[0] = 0xFE;
send[1] = 0x05;
send[2] = 0x10;
send[3] = 0x52;
//计算检校位

            byte[] CrcByteData = new byte[3];            Array.Copy(send 1 CrcByteData 0 CrcByteData.Length);            int cRc16 = CRC_16.GetCRC_16(CrcByteData);            //取出高8位和低8位            byte _sendHight = HiByte(cRc16);            byte _sendLower = LoByte(cRc16);            send[4] = _sendHight;            send[5] = _sendLower;            //发送命令            _SerialPort.Write(send 0 send.Length);            //接收命令            byte[] receivedata = GetPortStream(7);            //根据协议比对询卡是否成功            if (receivedata[2] == 0x00)//如果寻卡成功            {                /* *********************                 * 寻卡成功后则获取卡号*                 ***********************/                //生成获取卡号待发命令                byte[] send1 = new byte[7];                send1[0] = 0xFE;                send1[1] = 0x06;                send1[2] = 0x11;                send1[3] = 0x93;                send1[4] = 0x00;                //计算检校位                byte[] CrcByteData1 = new byte[4];                Array.Copy(send1 1 CrcByteData1 0 CrcByteData1.Length);                int cRc16_1 = CRC_16.GetCRC_16(CrcByteData1);                //取出高8位和低8位                byte _sendHight1 = HiByte(cRc16_1);                byte _sendLower1 = LoByte(cRc16_1);                send1[5] = _sendHight1;                send1[6] = _sendLower1;                //发送命令                _SerialPort.Write(send1 0 send1.Length);                //接收命令                byte[] receivedata1 = GetPortStream(9);                //根据协议比对询卡是否成功                if (receivedata1[2] == 0x00)//如果获取卡号成功                {                    Array.Copy(receivedata1 3 _CardNumbers 0 _CardNumbers.Length);                    SerialNo = ByteArrayToHexString(_CardNumbers);                    /* ***********************                     * 获取卡号成功后则选中卡*                     *************************/                    //生成选中卡待发命令                    byte[] send2 = new byte[10];                    send2[0] = 0xFE;                    send2[1] = 0x09;                    send2[2] = 0x13;                    send2[3] = 0x93;                    send2[4] = _CardNumbers[0];                    send2[5] = _CardNumbers[1];                    send2[6] = _CardNumbers[2];                    send2[7] = _CardNumbers[3];                    //计算检校位                    byte[] CrcByteData2 = new byte[7];                    Array.Copy(send2 1 CrcByteData2 0 CrcByteData2.Length);                    int cRc16_2 = CRC_16.GetCRC_16(CrcByteData2);                    //取出高8位和低8位                    byte _sendHight2 = HiByte(cRc16_2);                    byte _sendLower2 = LoByte(cRc16_2);                    send2[8] = _sendHight2;                    send2[9] = _sendLower2;                    //发送命令                    _SerialPort.Write(send2 0 send2.Length);                    //接收命令                    byte[] receivedata2 = GetPortStream(6);                    //根据协议比对询卡是否成功                    if (receivedata2[2] == 0x00)                    {                        return ErrorCode.Success;                    }                }            }               else if (receivedata[2] == 0xFF)                {                    return ErrorCode.Fail;                }                else                {                    return ErrorCode.PacketLoss;                }        }        catch        {            return ErrorCode.Abnormal;        }    }

解决方案

“if (receivedata1[2] == 0x00)//如果获取卡号成功”进不来,你从哪回?“if (receivedata2[2] == 0x00)”进不来,你又从哪回?

解决方案二:
grep 返回值问题
CreateIoCompletionPort 返回值的问题
fread 返回值的问题

时间: 2024-09-15 19:45:03

c#-返回值哪里有问题。。的相关文章

一个类如何实现两个接口中同名同参数不同返回值的函数

假设有如下两个接口: public interface IA{    string GetA(string a);}public interface IB{    int GetA(string a);} 他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口: public class X:IA,IB 由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该

nodejs如何将数据返回给前端的post请求,在浏览器preview能看到返回值

问题描述 nodejs如何将数据返回给前端的post请求,在浏览器preview能看到返回值 前端使用ajax请求post方法请求nodejs服务.nodejs如何将数据返回给前端,并且在浏览器的preview中能得到,新手,在线急等

字符串-一个很基础的返回值问题

问题描述 一个很基础的返回值问题 想要打印字符串数组,去掉中间的空格和Tab,并且删除全为空的行,哪里有错?谢谢. #include #define MAXLINE 1000 int getline(char line[], int maxline); int copy(char to[],char from[]); int main(){ int len; int max; char line[MAXLINE]; max=0; while ((len=getline(line,MAXLINE)

c++-在写函数时 是不是要把返回值都放在形参表里?把函数返回值设定为true/false?

问题描述 在写函数时 是不是要把返回值都放在形参表里?把函数返回值设定为true/false? 在写函数时 是不是要把返回值都放在形参表里?把函数返回值设定为true/false? 解决方案 主要还是看程序需要把,这种想法只是对于一些内存申请操作来说,函数在结束后就将函数内申请的控件释放.如果已经在外部申请好了内存,是可以当做返回值返回的.所以说并不一定就要把返回值放在形参表里. 解决方案二: 这也是一种方式,尤其对于要返回多个结果的时候,一般通过参数来传递结果.然后函数返回值来表示函数是否调用

android-线程结束计算后返回值

问题描述 线程结束计算后返回值 先看我写的代码: public class JsoupParser { ArrayList<CompanyInfo> arr = new ArrayList<CompanyInfo>(); public JsoupParser() {} public ArrayList<CompanyInfo> parse(final String link) throws IOException { Runnable runnable = new Ru

ajax-JQuery Ajax 返回值容器遍历

问题描述 JQuery Ajax 返回值容器遍历 用Ajax 进行异步刷新,在后台中如何给ajax返回一个List容器,并且在页面js代码中遍历并且显示到页面中 解决方案 后台使用resspon.getWriter.write(list); 前台AJAX可以这样 $.ajax{ dataType:json, .....其他和正常的ajax请求写法一样 success:function(data){ 这个data就是一个数组元素啦!!! } }

谢谢 救急-为什么我截图发送给一个答题接口,获得返回值之后传给游戏程序 取不到值。谢谢各位了

问题描述 为什么我截图发送给一个答题接口,获得返回值之后传给游戏程序 取不到值.谢谢各位了 static BOOL SyncGetAnswer(LPCSTR szJpgFile LPCSTR& szAnswer){ BOOL bResult = FALSE; HMODULE hMod = NULL; TRYBLOCK_START CHAR szPath[MAX_PATH] = {0}; // 发送答题 wsprintfA(szPath%slldm.dll"" GetAppPat

jquery ajax返回值与无返回值问题

  jquery ajax 返回值有很多类型如有html,text,json,xml类型了,我们这些值都可以在ajaxp处理是直接使用匿名函数来直接获取,下面我整理内个jquery ajax 返回值的例子给各位参考参考. jquery中常用的ajac有 $.ajax() , $.post , $.get() ,$.load()了. 例子  代码如下   $.post("test.jsp",  { name: "cssrain", time: "2008/0

Object转Integer类型失败,转Long型可以,方法返回值为1,并没有超过两个类型的范围

问题描述 Object转Integer类型失败,转Long型可以,方法返回值为1,并没有超过两个类型的范围 在网上找的尚硅谷的教学视频 其中有添加权限一段 String hql="select count(*) from Right r where r.rightUrl=?"; //此处不能用integer只能Long Long count=(Long) this.uniqueResult(hql, url); System.out.println(count); 下面是uniqueR

throws-Java抛出异常时用e.printStackTrace()怎么会说没有返回值呢?

问题描述 Java抛出异常时用e.printStackTrace()怎么会说没有返回值呢? public Socket getSocket() { try { Socket socket =new Socket("localhost",8088); return socket; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } 这里要报错,没有返回值 public So