我需要为作为参数传递的数据和长度计算CCITT 16位校验和值.如果我用测试数据"123456789"填充我的数组TempStr,使用多项式0x8408,其长度不包括空终止字符,我得到结果字符串6E90(十六进制).与null终止字符一起,我得到907A.当我将多项式换算为0x1201时,我得到带有和不带终止字符的结果29E2(十六进制)和EFE8(十六进制).
我的问题是:我是否需要使用或不使用空终止字符来计算CRC以获得正确的值?我在算法中使用多项式0x1201或反向多项式0x8408吗?给定数据0x29B1的CRC是否正确?我需要正确的值来确定函数是否正常工作.算法是否正确计算此特定CRC类型?wData =(unsigned int)0xff&*pData ++ ?? 如果有人可以向我解释有什么问题以及如何解决我的问题我会非常感激.谢谢
这是使用和显示calculate_CRC16函数的代码:
CHAR_t TestStr[] = {"123456789"};
unsigned short CrcTest = calculate_CRC16(TestStr,sizeof(TestStr)-1);
QString CrcDisplay = QString("CrcTest : %1").arg(CrcTest);
ui->txtDebug->setText(CrcDisplay);
Run Code Online (Sandbox Code Playgroud)
这是calculate_CRC16函数:
UINT16_t MainWindow::calculate_CRC16(CHAR_t* pData, UINT16_t wLength)
{
UCHAR_t i;
UINT16_t wData;
UINT16_t wCrc = 0xffff;
if (wLength == 0)
return (~wCrc);
do
{
for (i=0, wData=(unsigned int)0xff & *pData++; i < 8; i++, wData >>= 1)
{
if ((wCrc & 0x0001) ^ (wData & 0x0001))
wCrc = (wCrc >> 1) ^ CRC_POLY;
else wCrc >>= …
Run Code Online (Sandbox Code Playgroud) 我今天的问题很简单.我所拥有的是一个VB模块,其中包含一些代码,用于返回一个ADODB.RecordSet对象,该对象具有从已执行的SQL查询中获取的记录.它的工作原理如下:
sSql_SerCheck = "SELECT DISTINCT Serial FROM dbo.WipReservedSerial WHERE Serial LIKE '" & serialTempSearch
sSql_SerCheck = sSql_SerCheck & "' ORDER BY Serial DESC "
dbGetRecordSet(sSql_SerCheck)
Run Code Online (Sandbox Code Playgroud)
然后结果位于对象rs中,如下所示访问
temp = rs(0) 'For the value at the first column for the first record
rs.MoveNext 'This moves to the next record in the record set
Run Code Online (Sandbox Code Playgroud)
现在我要做的是这个记录集对象中包含的记录数.现在我对课程进行了一些研究,发现有一个RecordCount att.
所以我想做的很简单:
if( rs.RecordCount > 0) then
serCheck1 = rs(0)
MsgBox serCheck1
end if
Run Code Online (Sandbox Code Playgroud)
问题是我的RecordCount返回-1.我发现这篇文章http://www.w3schools.com/asp/prop_rs_recordcount.asp声明记录计数将返回-1以进行以下操作:
注意:对于只进游标,此属性将返回-1; 静态或键集游标的实际计数; 和-1或动态光标的实际计数.
注意:调用此属性时,Recordset对象必须处于打开状态.如果不支持此属性,则返回-1.
如何让这个对象返回正确的记录数?
VB模块的代码添加如下:
Public cn, rs
'Specify pSQL …
Run Code Online (Sandbox Code Playgroud) 好的,所以我需要做的是根据行列的值显示不同颜色的网格行.这是我当前的网格代码:
@(Html.Kendo().Grid<iPlan.Syspro.Beekman.Portal.Agents.Models.SalesOrderViewModel>()
.Name("Inbox")
.HtmlAttributes(new { style = "height:80vh; width:80vw;" })
.Columns(columns =>
{
columns.Bound(c => c.SalesOrder).Width(60);
columns.Bound(c => c.Status).Width(60);
columns.Bound(c => c.Date).Width(60);
columns.Bound(c => c.DaysOutstanding).Width(80);
//columns.Bound(c => c.Available).Width(60);
columns.Template(@<text></text>).Width(60).ClientTemplate("<a class='k-button k-button-icontext k-grid-edit' href='/Inbox/SalesOrderDetail?SalesOrder=#=SalesOrder#'><span class='k-icon k-edit'></span>View</a>").Title("Detail");
columns.Template(@<text></text>).Width(60).ClientTemplate("<a class='k-button k-button-icontext k-grid-edit' href='/Inbox/GetDeliveryNote?SalesOrder=#=SalesOrder#'><span class='k-icon k-edit'></span>View</a>").Title("Delivery Note");
columns.Template(@<text></text>).Width(60).ClientTemplate("<a class='k-button k-button-icontext k-grid-edit' href='/Inbox/GetDealerOrder?SalesOrder=#=SalesOrder#'><span class='k-icon k-edit'></span>View</a>").Title("Dealer order");
columns.Template(@<text></text>).Width(60).ClientTemplate("<a class='k-button k-button-icontext k-grid-edit' href='/Inbox/GetFitmentFee?SalesOrder=#=SalesOrder#'><span class='k-icon k-edit'></span>View</a>").Title("Fitment invoice");
})
.Selectable()
.Scrollable()
.Sortable()
.Groupable()
.Filterable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("SalesOrders_Read", "Inbox"))
) …
Run Code Online (Sandbox Code Playgroud)