// Overrides the ConvertFrom method of TypeConverter. public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { uint16 result = ushort.Parse((string)value); return(result); } return(base.ConvertFrom(context, culture, value)); }
/// <summary> /// Updates the Properties used in CommonData. /// </summary> /// <param name="data">The SYMO823M data.</param> public void Refresh(SYMO823MData data) { if (data != null) { // Common Model (C001) SunSpecID = data.SunSpecID; C001ID = data.C001ID; C001Length = data.C001Length; Manufacturer = data.Manufacturer; Model = data.Model; Options = data.Options; Version = data.Version; SerialNumber = data.SerialNumber; DeviceAddress = data.DeviceAddress; } Status = data?.Status ?? Uncertain; }
ErrorCode queue_scrypt_kernel(clState _clState, dev_blk_ctx blk) { //Scantime blk.work.midstate0 = new uint4(0); blk.work.midstate16 = new uint4(1); // unsigned char *midstate = blk->work->midstate; int num = 0; uint16 le_target; le_target = new uint16(Convert.ToUInt16(blk.work.device_target + 28)); _clState.cldata = blk.work.data; _clState.CLBuffer0 = new uint4(0); _clState.outputBuffer = new Mem(); _clState.padbuffer8 = new uint4(0); OpenCL.Net.Event clevent; OpenCL.Net.ImageFormat clImageFormat = new OpenCL.Net.ImageFormat(ChannelOrder.RGBA, ChannelType.Unsigned_Int8); ErrorCode err1; byte[] inputByteArray = new byte[1024]; //buffer0 = (OpenCL.Net.Mem)OpenCL.Net.Cl.CreateImage2D(_clState.cl_context, OpenCL.Net.MemFlags.CopyHostPtr | OpenCL.Net.MemFlags.ReadOnly, clImageFormat, (IntPtr)1024, (IntPtr)1, (IntPtr)0, inputByteArray, out err1); // buffer0 = (OpenCL.Net.Mem)inputByteArray; // byte[] byteSrcImage2DData = new byte[srcIMGBytesSize]; Mem buffer0 = (Mem)OpenCL.Net.Cl.CreateBuffer(_clState.cl_context, MemFlags.ReadWrite, 1024, out err1); ErrorCode status = Cl.EnqueueWriteBuffer(_clState.cl_command_queue, buffer0, OpenCL.Net.Bool.True, (IntPtr)0, (IntPtr)1024, _clState.cldata, 0, null, out clevent); // // status = OpenCL.Net.Cl.SetKernelArg(_clState.Kernel, num++, sizeof(var), (void *)&var) // CL_SET_VARG(args, var) status |= clSetKernelArg(*kernel, num++, args * sizeof(uint), (void *)var) int intPtrSize = 0; intPtrSize = Marshal.SizeOf(typeof(IntPtr)); OpenCL.Net.Cl.SetKernelArg(_clState.cl_kernel, 0, (IntPtr)intPtrSize, _clState.CLBuffer0); OpenCL.Net.Cl.SetKernelArg(_clState.cl_kernel, 1, _clState.outputBuffer); OpenCL.Net.Cl.SetKernelArg(_clState.cl_kernel, 2, _clState.padbuffer8); OpenCL.Net.Cl.SetKernelArg(_clState.cl_kernel, 3, blk.work.midstate0); OpenCL.Net.Cl.SetKernelArg(_clState.cl_kernel, 4, blk.work.midstate16); // CL_SET_VARG(4, &midstate[0]); // CL_SET_VARG(4, &midstate[16]); OpenCL.Net.Cl.SetKernelArg(_clState.cl_kernel, 5, le_target); //error = Cl.SetKernelArg(kernel, 0, (IntPtr)intPtrSize, inputImage2DBuffer); CheckErr(status, "Cl.SetKernelArg"); return(status); }
/// <summary> /// Updates the Properties used in InternalData. /// </summary> /// <param name="data">The BControl data.</param> public void Refresh(BControlData data) { if (data != null) { C_SunSpec_ID = data.C_SunSpec_ID; C_SunSpec_DID1 = data.C_SunSpec_DID1; C_SunSpec_Length1 = data.C_SunSpec_Length1; C_Manufacturer = data.C_Manufacturer; C_Model = data.C_Model; C_Options = data.C_Options; C_Version = data.C_Version; C_SerialNumber = data.C_SerialNumber; C_DeviceAddress = data.C_DeviceAddress; C_SunSpec_DID2 = data.C_SunSpec_DID2; C_SunSpec_Length2 = data.C_SunSpec_Length2; M_AC_Current = data.M_AC_Current; M_AC_Current_A = data.M_AC_Current_A; M_AC_Current_B = data.M_AC_Current_B; M_AC_Current_C = data.M_AC_Current_C; M_AC_Current_SF = data.M_AC_Current_SF; M_AC_Voltage_LN = data.M_AC_Voltage_LN; M_AC_Voltage_AN = data.M_AC_Voltage_AN; M_AC_Voltage_BN = data.M_AC_Voltage_BN; M_AC_Voltage_CN = data.M_AC_Voltage_CN; M_AC_Voltage_LL = data.M_AC_Voltage_LL; M_AC_Voltage_AB = data.M_AC_Voltage_AB; M_AC_Voltage_BC = data.M_AC_Voltage_BC; M_AC_Voltage_CA = data.M_AC_Voltage_CA; M_AC_Voltage_SF = data.M_AC_Voltage_SF; M_AC_Freq = data.M_AC_Freq; M_AC_Freq_SF = data.M_AC_Freq_SF; M_AC_Power = data.M_AC_Power; M_AC_Power_A = data.M_AC_Power_A; M_AC_Power_B = data.M_AC_Power_B; M_AC_Power_C = data.M_AC_Power_C; M_AC_Power_SF = data.M_AC_Power_SF; M_AC_VA = data.M_AC_VA; M_AC_VA_A = data.M_AC_VA_A; M_AC_VA_B = data.M_AC_VA_B; M_AC_VA_C = data.M_AC_VA_C; M_AC_VA_SF = data.M_AC_VA_SF; M_AC_VAR = data.M_AC_VAR; M_AC_VAR_A = data.M_AC_VAR_A; M_AC_VAR_B = data.M_AC_VAR_B; M_AC_VAR_C = data.M_AC_VAR_C; M_AC_VAR_SF = data.M_AC_VAR_SF; M_AC_PF = data.M_AC_PF; M_AC_PF_A = data.M_AC_PF_A; M_AC_PF_B = data.M_AC_PF_B; M_AC_PF_C = data.M_AC_PF_C; M_AC_PF_SF = data.M_AC_PF_SF; M_Exported = data.M_Exported; M_Exported_A = data.M_Exported_A; M_Exported_B = data.M_Exported_B; M_Exported_C = data.M_Exported_C; M_Imported = data.M_Imported; M_Imported_A = data.M_Imported_A; M_Imported_B = data.M_Imported_B; M_Imported_C = data.M_Imported_C; M_Energy_W_SF = data.M_Energy_W_SF; M_Exported_VA = data.M_Exported_VA; M_Exported_VA_A = data.M_Exported_VA_A; M_Exported_VA_B = data.M_Exported_VA_B; M_Exported_VA_C = data.M_Exported_VA_C; M_Imported_VA = data.M_Imported_VA; M_Imported_VA_A = data.M_Imported_VA_A; M_Imported_VA_B = data.M_Imported_VA_B; M_Imported_VA_C = data.M_Imported_VA_C; M_Energy_VA_SF = data.M_Energy_VA_SF; M_Import_VARh_Q1 = data.M_Import_VARh_Q1; M_Import_VARh_Q1A = data.M_Import_VARh_Q1A; M_Import_VARh_Q1B = data.M_Import_VARh_Q1B; M_Import_VARh_Q1C = data.M_Import_VARh_Q1C; M_Import_VARh_Q2 = data.M_Import_VARh_Q2; M_Import_VARh_Q2A = data.M_Import_VARh_Q2A; M_Import_VARh_Q2B = data.M_Import_VARh_Q2B; M_Import_VARh_Q2C = data.M_Import_VARh_Q2C; M_Import_VARh_Q3 = data.M_Import_VARh_Q3; M_Import_VARh_Q3A = data.M_Import_VARh_Q3A; M_Import_VARh_Q3B = data.M_Import_VARh_Q3B; M_Import_VARh_Q3C = data.M_Import_VARh_Q3C; M_Import_VARh_Q4 = data.M_Import_VARh_Q4; M_Import_VARh_Q4A = data.M_Import_VARh_Q4A; M_Import_VARh_Q4B = data.M_Import_VARh_Q4B; M_Import_VARh_Q4C = data.M_Import_VARh_Q4C; M_Energy_VAR_SF = data.M_Energy_VAR_SF; M_Events = data.M_Events; C_SunSpec_DID3 = data.C_SunSpec_DID3; C_SunSpec_Length3 = data.C_SunSpec_Length3; } Status = data?.Status ?? Uncertain; }
inline void packI(uint16 r, uint16 g, uint16 b, uint16 a, PixelFormat pf, void* dest) { PixelUtil::packColour((float)r/65535.0f, (float)g/65535.0f, (float)b/65535.0f, (float)a/65535.0f, pf, dest); }
public static void compressDXT1(ColorBlock rgba, BlockDXT1 dxtBlock) { if (rgba.isSingleColor()) { OptimalCompress.compressDXT1(rgba.color[0], dxtBlock); } else { // read block Vector3[] block = new Vector3[16]; extractColorBlockRGB(rgba, block); #if true // find min and max colors Vector3 maxColor = Vector3.zero, minColor = Vector3.zero; findMinMaxColorsBox(block, 16, ref maxColor, ref minColor); selectDiagonal(block, 16, ref maxColor, ref minColor); insetBBox(ref maxColor, ref minColor); #else float[] weights = new float[16] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; Vector3[] cluster = new Vector3[4]; int count = Fitting.Compute4Means(16, block, weights, Vector3.one, cluster); Vector3 maxColor, minColor; float bestError = FLT_MAX; for (int i = 1; i < 4; i++) { for (int j = 0; j < i; j++) { uint16 color0 = roundAndExpand(&cluster[i]); uint16 color1 = roundAndExpand(&cluster[j]); float error = evaluatePaletteError4(block, cluster[i], cluster[j]); if (error < bestError) { bestError = error; maxColor = cluster[i]; minColor = cluster[j]; } } } #endif ushort color0 = roundAndExpand(ref maxColor); ushort color1 = roundAndExpand(ref minColor); if (color0 < color1) { swap(ref maxColor, ref minColor); swap(ref color0, ref color1); } dxtBlock.col0 = new Color16(color0); dxtBlock.col1 = new Color16(color1); dxtBlock.indices = computeIndices4(block, maxColor, minColor); optimizeEndPoints4(block, dxtBlock); } }
inline void packI(uint16 r, uint16 g, uint16 b, uint16 a, PixelFormat pf, void *dest) { PixelUtil::packColour((float)r / 65535.0f, (float)g / 65535.0f, (float)b / 65535.0f, (float)a / 65535.0f, pf, dest); }