我们目前正在运行多个 Azure 应用服务,这些服务在 PCI-DSS 合规性方面存在问题,因为应用服务启用了 TLSv1.0,没有禁用它的选项。阅读之后,似乎 App Service Environments将允许我们这样做。但是,我似乎无法弄清楚如何将我们现有的应用程序迁移到新的服务环境。我们是否只需要从头开始创建一个新的应用程序?
我目前正在尝试使用为Arduino USB主机屏蔽编写的代码库,并将其与Arduino核心库分离,以便我可以在非Arduino微控制器项目中使用该代码.
从查看代码来看,Arduino代码库上没有很多硬依赖,但我遇到了一些奇怪的错误,可能是由于Arduino构建系统和LUFA构建系统之间的差异.具体来说,我在大约75%的头文件中收到以下错误,每个错误十几次:
error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
Run Code Online (Sandbox Code Playgroud)
有时,错误表示错误中的标记不同,但它仍然是相同的错误.我在各种论坛和Stack Overflow上发现了很多类似的问题,但解决方案往往每次都有所不同.
为了清楚起见,这段代码在Arduino构建系统中编译100%,但是当我尝试使用LUFA模板makefile直接使用WinAVR构建时会出现这些错误.从查看代码,我已经确定我需要#define一些值,例如-DARDUINO=102(或者至少某些值> = 100,但我使用的Arduino IDE的版本是1.0.2,所以我认为那是一个很好的价值使用).
所以我想我正在寻找熟悉Arduino构建系统的人来帮助我弄清楚我缺少的东西.可以在这里找到完整的代码库,但是为了提供一个简单的示例来演示问题而不包括整个代码库,这里是printhex.h:
#if !defined(__PRINTHEX_H__)
#define __PRINTHEX_H__
#if defined(ARDUINO) && ARDUINO >=100
#include "Arduino.h"
#else
#include <WProgram.h>
#endif
template <class T>
void PrintHex(T val)
{
T mask = (((T)1) << (((sizeof(T) << 1) - 1) << 2));
while (mask > 1)
{
if (val < mask)
Serial.print("0");
mask >>= 4; …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用Java中的Observer Pattern的通用实现,除了发现它会生成未经检查的调用警告(如果可能)后,我发现它似乎工作得很好,这似乎工作得很好。实现看起来像这样:
IObservable.java接口:
public interface IObservable<T> {
void addObserver(IObserver<T> observer);
void removeObserver(IObserver<T> observer);
}
Run Code Online (Sandbox Code Playgroud)
基类Observable.java:
import java.util.ArrayList;
public class Observable<T> implements IObservable<T> {
private final ArrayList<IObserver<T>> observers
= new ArrayList<IObserver<T>>();
public void addObserver(IObserver<T> observer) {
synchronized (observers) {
observers.add(observer);
}
}
public void removeObserver(IObserver<T> observer) {
synchronized (observers) {
observers.remove(observer);
}
}
protected void notifyObservers(final T t) {
synchronized (observers) {
for (IObserver<T> observer : observers) {
observer.notify(t);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
观察者接口IObserver.java:
public interface IObserver<T> {
void notify(T model); …Run Code Online (Sandbox Code Playgroud)